stages: - test - build - deploy test:cargo: image: rust:latest stage: test script: - rustc --version && cargo --version # Print version info for debugging - rustup component add clippy - cargo clippy -- -D warnings - cargo test build: stage: build image: categulario/rust-cli-image:latest script: # build the binary - cargo build --locked --release # create the tar package - mkdir -p build # move things to the build directory - cp target/release/t build/t - cp CHANGELOG.md build/CHANGELOG.md - cp README.md build/README.md - cp LICENSE build/LICENSE # 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 artifacts: paths: - tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz - debian-package/tiempo_${CI_COMMIT_TAG:1}_amd64.deb - tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz.sum - tiempo_${CI_COMMIT_TAG:1}_amd64.deb.sum rules: - if: $CI_COMMIT_BRANCH when: never - if: $CI_COMMIT_TAG =~ /^v*/ upload: stage: deploy image: kroniak/ssh-client script: - mkdir -p ~/.ssh - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config - eval $(ssh-agent -s) - ssh-add <(echo "$PRIVATE_KEY") - scp tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz $SERVER_USER@$SERVER_HOST:$LINUX_RELEASE_PATH - scp tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz.sum $SERVER_USER@$SERVER_HOST:$LINUX_RELEASE_PATH - scp debian-package/tiempo_${CI_COMMIT_TAG:1}_amd64.deb $SERVER_USER@$SERVER_HOST:$DEBIAN_RELEASE_PATH - scp tiempo_${CI_COMMIT_TAG:1}_amd64.deb.sum $SERVER_USER@$SERVER_HOST:$DEBIAN_RELEASE_PATH rules: - if: $CI_COMMIT_BRANCH when: never - if: $CI_COMMIT_TAG =~ /^v*/ deploy:arch-bin: stage: deploy image: categulario/makepkg script: # setup ssh - mkdir -p ~/.ssh - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config - eval $(ssh-agent -s) - ssh-add <(echo "$ARCH_PRIVATE_KEY") # setup git, because we'll commit - git config --global user.name "$COMMITER_NAME" - git config --global user.email "$COMMITER_EMAIL" # finally run the script - scripts/release-aur-bin.sh rules: - if: $CI_COMMIT_BRANCH when: never - if: $CI_COMMIT_TAG =~ /^v*/ deploy:arch-git: stage: deploy image: categulario/makepkg script: # setup ssh - mkdir -p ~/.ssh - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config - eval $(ssh-agent -s) - ssh-add <(echo "$ARCH_PRIVATE_KEY") # setup git, because we'll commit - git config --global user.name "$COMMITER_NAME" - git config --global user.email "$COMMITER_EMAIL" # finally run the script - scripts/release-aur-git.sh rules: - if: $CI_COMMIT_BRANCH when: never - if: $CI_COMMIT_TAG =~ /^v*/ pages: image: python:3.8-alpine stage: deploy script: - pip install -U sphinx - mkdir -p public/{es,en} - sphinx-build -b html ./docs/es/source/ public/es - sphinx-build -b html ./docs/en/source/ public/en artifacts: paths: - public rules: - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH