stages: - test - build - upload - release - aur test:cargo: image: rust:latest stage: test script: - rustc --version && cargo --version # Print version info for debugging - rustup component add clippy - cargo clippy --all-targets --all-features -- -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*/ variables: PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_COMMIT_TAG}/${CI_COMMIT_TAG}" COMMITER_NAME: Abraham Toriz COMMITER_EMAIL: categulario+gitlabci@gmail.com upload: stage: upload image: curlimages/curl:latest rules: - if: $CI_COMMIT_BRANCH when: never - if: $CI_COMMIT_TAG =~ /^v*/ script: - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz ${PACKAGE_REGISTRY_URL}/tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz' - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz.sum ${PACKAGE_REGISTRY_URL}/tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz.sum' - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file debian-package/tiempo_${CI_COMMIT_TAG:1}_amd64.deb ${PACKAGE_REGISTRY_URL}/tiempo_${CI_COMMIT_TAG:1}_amd64.deb' - 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file tiempo_${CI_COMMIT_TAG:1}_amd64.deb.sum ${PACKAGE_REGISTRY_URL}/tiempo_${CI_COMMIT_TAG:1}_amd64.deb.sum' release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest rules: - if: $CI_COMMIT_BRANCH when: never - if: $CI_COMMIT_TAG =~ /^v*/ script: - echo "running release_job" release: name: 'Release $CI_COMMIT_TAG' description: 'Created using the release-cli' tag_name: '$CI_COMMIT_TAG' ref: '$CI_COMMIT_TAG' assets: links: - name: 'Any linux binary' url: '${PACKAGE_REGISTRY_URL}/tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz' - name: 'Any linux binary sha256 sum' url: '${PACKAGE_REGISTRY_URL}/tiempo-${CI_COMMIT_TAG:1}-x86_64.tar.gz.sum' - name: 'Debian archive' url: '${PACKAGE_REGISTRY_URL}/tiempo_${CI_COMMIT_TAG:1}_amd64.deb' - name: 'Debian archive sha256 sum' url: '${PACKAGE_REGISTRY_URL}/tiempo_${CI_COMMIT_TAG:1}_amd64.deb.sum' deploy:arch-bin: stage: aur 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: aur # 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