stages: # - build - package - sign 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 - master - ci-package - next - tags - schedules .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*" # Our version tags - ci-package - next before_script: - npm install --global yarn --cache-min 999999999 - npm install #Stage - build #build: # stage: build # only: *releaseable_branches # script: # - scripts/lint.sh # - scripts/build.sh # - scripts/push-precompiled.sh # tags: # - rust-stable # Stage package binaries package:binaries:linux: stage: package only: *releaseable_branches script: - npm run package 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 package -- --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 package -- --win artifacts: name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" when: on_success expire_in: 1 week paths: - dist/*.exe tags: - rust-stable # Stage sign sign:mac: stage: sign only: *releaseable_branches before_script: - export VER="$(node -p "require('./package.json').version")" - export CSC_IDENTITY_AUTO_DISCOVERY=false dependencies: - package:binaries:mac script: - scripts/sign-mac.sh tags: - osx