stages: - build - package - publish image: parity/rust:gitlab-ci cache: key: "${CI_JOB_NAME}" paths: - ${CI_PROJECT_DIR}/target/ - ${CI_PROJECT_DIR}/cargo/ - node_modules/ - .cache - $HOME/.cache .releaseable_branches: # list of git refs for building GitLab artifacts (think "pre-release binaries") only: &releaseable_branches - schedules # Our nightly builds from schedule, on `master` - /^v[0-9]+\.[0-9]+\.[0-9]+$/ # Our version tags - ci-package - master .publishable_branches: # list of git refs for publishing builds to the "production" locations only: &publishable_branches - schedules # Our nightly builds from schedule, on `master` - /^v[0-9]+\.[0-9]+\.[0-9]+$/ # Our version tags - ci-package - master before_script: - npm install - export VERSION=$(node -p "require('./package.json').version") # Stage - build build: stage: build script: - scripts/lint.sh - scripts/test.sh - scripts/build.sh tags: - rust-stable # Stage package binaries package:binaries:linux: stage: package only: *releaseable_branches script: - npm run release --linux artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" when: on_success expire_in: 1 week paths: - dist/*.deb - dist/*.snap - dist/*.AppImage - dist/*.xz tags: - rust-stable package:binaries:mac: stage: package only: *releaseable_branches script: - export ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES=true - npm run release -- --mac artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" when: on_success expire_in: 1 week paths: - dist/*.pkg tags: - osx package:binaries:windows: stage: package only: *releaseable_branches image: electronuserland/builder:wine script: - npm run release -- --win artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" when: on_success expire_in: 1 week paths: - dist/*.exe tags: - rust-stable # Stage publish publish:snap: stage: publish only: *publishable_branches image: snapcore/snapcraft:stable dependencies: - package:binaries:linux variables: BUILD_ARCH: amd64 before_script: - export VERSION=$(grep -m 1 "version" package.json | awk '{print $2}' | tr -d '",' | tr -d "\n")&&echo "Version:" $VERSION script: - scripts/publish-snap.sh tags: - rust-stable #gitsync enabled