stages: - test - ui - build - build-docker - deploy - release test: image: "rust:slim-buster" stage: test script: - mkdir dist - touch dist/index.html - apt-get update - apt-get -y install libssl-dev pkg-config - cargo test build-ui: stage: ui image: node:16.13-slim script: - apt-get update - apt-get -y install libssl-dev - npm install - npm run build artifacts: paths: - dist/ build-bin: dependencies: - build-ui variables: RUSTC_WRAPPER: /usr/local/bin/sccache SCCACHE_BUCKET: $SCCACHE_BUCKET AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY image: "rust:slim-buster" stage: build tags: - linux script: - apt-get update - apt-get -y install libssl-dev pkg-config wget - wget https://github.com/mozilla/sccache/releases/download/v0.2.15/sccache-v0.2.15-x86_64-unknown-linux-musl.tar.gz - tar xzf sccache-v0.2.15-x86_64-unknown-linux-musl.tar.gz - mv sccache-v0.2.15-x86_64-unknown-linux-musl/sccache /usr/local/bin/sccache - chmod +x /usr/local/bin/sccache - cargo build --release - tar -czf ./vade-linux-x64.tar.gz -C target/release . artifacts: paths: - target/release/vade build-docker: dependencies: - build-bin image: docker:19.03.12 services: - docker:19.03.12-dind stage: build-docker script: - cd target/release - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - docker build -t $CI_REGISTRY/vade/vade . - docker push $CI_REGISTRY/vade/vade # rules: # - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH deploy-binaries: dependencies: - build-bin image: curlimages/curl:latest stage: deploy rules: - if: $CI_COMMIT_TAG script: - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file vade-linux-x64.tar.gz "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/bin/$CI_COMMIT_TAG/vade-linux-x64-$CI_COMMIT_TAG.tar.gz"' release: stage: release image: registry.gitlab.com/gitlab-org/release-cli:latest rules: - if: $CI_COMMIT_TAG script: - echo "running release_job" release: name: 'Release v$CI_COMMIT_TAG' description: 'Version $CI_COMMIT_TAG' tag_name: '$CI_COMMIT_TAG' ref: '$CI_COMMIT_TAG' assets: links: - name: 'vade-linux--x64-$CI_COMMIT_TAG.tar.gz' url: '${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/linux-bin/$CI_COMMIT_TAG/vade-linux-x64-$CI_COMMIT_TAG.tar.gz'