a container image capable of building tiempo consistently
This commit is contained in:
parent
2dc6cda4f2
commit
1e68467d36
|
@ -5,3 +5,6 @@
|
||||||
docs/*/build/
|
docs/*/build/
|
||||||
dev_config.toml
|
dev_config.toml
|
||||||
Pipfile*
|
Pipfile*
|
||||||
|
artifacts/
|
||||||
|
build/
|
||||||
|
debian-package/
|
||||||
|
|
|
@ -26,7 +26,6 @@ build-doc:
|
||||||
- gzip build/man/tiempo.1
|
- gzip build/man/tiempo.1
|
||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH == "main"
|
- if: $CI_COMMIT_BRANCH == "main"
|
||||||
- if: $CI_COMMIT_TAG =~ /^v*/
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- docs/build/html
|
- docs/build/html
|
||||||
|
@ -46,37 +45,9 @@ publish-doc:
|
||||||
|
|
||||||
build:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
image: categulario/rust-cli-image:latest
|
image: categulario/tiempo-build-env:1.65
|
||||||
script:
|
script:
|
||||||
# build the binary
|
- ./scripts/build.sh
|
||||||
- cargo build --locked --release
|
|
||||||
# create the tar package
|
|
||||||
- mkdir -p build/bin build/share/doc/tiempo build/share/man/man1 build/share/bash-completion/completions build/share/zsh/site-functions build/share/fish/vendor_completions.d
|
|
||||||
# move binary
|
|
||||||
- cp target/release/t build/bin/
|
|
||||||
# move documentation
|
|
||||||
- cp CHANGELOG.md build/share/doc/tiempo/
|
|
||||||
- cp README.md build/share/doc/tiempo/
|
|
||||||
- cp LICENSE build/share/doc/tiempo/
|
|
||||||
- cp -R docs/build/html build/share/doc/tiempo/
|
|
||||||
# move man page
|
|
||||||
- cp docs/build/man/tiempo.1.gz build/share/man/man1/
|
|
||||||
# move completions
|
|
||||||
- cp completions/bash/t build/share/bash-completion/completions/
|
|
||||||
- cp completions/fish/t.fish build/share/fish/vendor_completions.d/
|
|
||||||
- cp completions/zsh/_t build/share/zsh/site-functions/
|
|
||||||
# compress the tar file
|
|
||||||
- tar -cvzf tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz build/
|
|
||||||
# makes the debian archive
|
|
||||||
- ./debpackage.sh
|
|
||||||
# computes the sums
|
|
||||||
- sha256sum tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz > tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz.sum
|
|
||||||
- sha256sum debian-package/tiempo_${CI_COMMIT_TAG:1}_amd64.deb > tiempo_${CI_COMMIT_TAG:1}_amd64.deb.sum
|
|
||||||
- mkdir artifacts
|
|
||||||
- mv tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz artifacts/
|
|
||||||
- mv debian-package/tiempo_${CI_COMMIT_TAG:1}_amd64.deb artifacts/
|
|
||||||
- mv tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz.sum artifacts/
|
|
||||||
- mv tiempo_${CI_COMMIT_TAG:1}_amd64.deb.sum artifacts/
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- artifacts/
|
- artifacts/
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
# This Containerfile builds the tiempo-build-env container image used to build
|
||||||
|
# tiempo in CI and local environments.
|
||||||
|
FROM docker.io/rust:1.65
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get upgrade -y && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
fakeroot \
|
||||||
|
python3-minimal \
|
||||||
|
python3-sphinx \
|
||||||
|
python3-tomlkit \
|
||||||
|
&& apt-get -q clean \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
14
README.md
14
README.md
|
@ -109,6 +109,20 @@ The contents of the man page are located in `docs/source/index.rst`,
|
||||||
formatted as
|
formatted as
|
||||||
[reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html).
|
[reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html).
|
||||||
|
|
||||||
|
### Building the packages like in CI but locally
|
||||||
|
|
||||||
|
First pull the image:
|
||||||
|
|
||||||
|
podman pull tiempo-build-env
|
||||||
|
|
||||||
|
Or build it yourself from this repo:
|
||||||
|
|
||||||
|
podman build -t tiempo-build-env .
|
||||||
|
|
||||||
|
Then build the packages:
|
||||||
|
|
||||||
|
podman run -it --rm -w /app -v ./:/app -e CI_COMMIT_TAG=v2.0.0 tiempo-build-env ./scripts/build.sh
|
||||||
|
|
||||||
## Special Thanks
|
## Special Thanks
|
||||||
|
|
||||||
To [timetrap](https://github.com/samg/timetrap) for existing, to
|
To [timetrap](https://github.com/samg/timetrap) for existing, to
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Fail if any of the commands fail
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Build the docs
|
||||||
|
cd docs/
|
||||||
|
make man
|
||||||
|
gzip -f build/man/tiempo.1
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
# build the binary
|
||||||
|
cargo build --locked --release
|
||||||
|
|
||||||
|
# create the tar package
|
||||||
|
mkdir -p build/bin build/share/doc/tiempo build/share/man/man1 build/share/bash-completion/completions build/share/zsh/site-functions build/share/fish/vendor_completions.d
|
||||||
|
# move binary
|
||||||
|
cp target/release/t build/bin/
|
||||||
|
# move documentation
|
||||||
|
cp CHANGELOG.md build/share/doc/tiempo/
|
||||||
|
cp README.md build/share/doc/tiempo/
|
||||||
|
cp LICENSE build/share/doc/tiempo/
|
||||||
|
# move man page
|
||||||
|
cp docs/build/man/tiempo.1.gz build/share/man/man1/
|
||||||
|
# move completions
|
||||||
|
cp completions/bash/t build/share/bash-completion/completions/
|
||||||
|
cp completions/fish/t.fish build/share/fish/vendor_completions.d/
|
||||||
|
cp completions/zsh/_t build/share/zsh/site-functions/
|
||||||
|
# compress the tar file
|
||||||
|
tar -cvzf tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz build/
|
||||||
|
# makes the debian archive
|
||||||
|
./scripts/debpackage.sh
|
||||||
|
# computes the sums
|
||||||
|
sha256sum tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz > tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz.sum
|
||||||
|
sha256sum debian-package/tiempo_${CI_COMMIT_TAG:1}_amd64.deb > tiempo_${CI_COMMIT_TAG:1}_amd64.deb.sum
|
||||||
|
mkdir -p artifacts
|
||||||
|
mv tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz artifacts/
|
||||||
|
mv debian-package/tiempo_${CI_COMMIT_TAG:1}_amd64.deb artifacts/
|
||||||
|
mv tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz.sum artifacts/
|
||||||
|
mv tiempo_${CI_COMMIT_TAG:1}_amd64.deb.sum artifacts/
|
Loading…
Reference in New Issue