Files
trezor-suite/ci/deploy.yml
2024-02-13 21:09:24 +01:00

154 lines
4.2 KiB
YAML

# Config
.run_everything_rules: &run_everything_rules
refs:
- develop
- releases
- schedules
- /^release\//
# todo: it should be possible to share between files using
# https://docs.gitlab.com/ee/ci/yaml/yaml_optimization.html#reference-tags
.run_connect_rules: &run_connect_rules
refs:
- schedules
- develop
changes:
- "packages/blockchain-link"
- "packages/connect*/**"
- "packages/transport"
- "packages/utxo-lib"
- "packages/utils"
# Suite web deploy to dev
suite-web deploy sldev:
stage: deploy to dev
variables:
DEPLOY_DIRECTORY: ${DEPLOY_BASE_DIR}/suite-web/${CI_COMMIT_REF_NAME}
needs:
- suite-web build dev
environment:
name: ${CI_COMMIT_REF_NAME}
url: $BASE_REVIEW_URL/${CI_COMMIT_REF_NAME}
before_script: []
script:
- mkdir -p ${DEPLOY_DIRECTORY}/web
- rsync --delete -va packages/suite-web/build/ "${DEPLOY_DIRECTORY}/web/"
tags:
- deploy
interruptible: true
# Suite desktop deploy to dev and production
suite-desktop deploy sldev:
stage: deploy to dev
only:
<<: *run_everything_rules
variables:
DEPLOY_DIRECTORY: ${DEPLOY_BASE_DIR}/suite-desktop/${CI_COMMIT_REF_NAME}
script:
- mkdir -p ${DEPLOY_DIRECTORY}
- 'rsync --delete -va "${DESKTOP_APP_NAME}"-*.AppImage "${DEPLOY_DIRECTORY}/" || :'
- 'rsync --delete -va "${DESKTOP_APP_NAME}"-*.dmg "${DEPLOY_DIRECTORY}/" || :'
- 'rsync --delete -va "${DESKTOP_APP_NAME}"-*.exe "${DEPLOY_DIRECTORY}/" || :'
tags:
- deploy
interruptible: true
# Messaging system deploy to dev
msg-system deploy sldev:
stage: deploy to dev
needs:
- "msg-system config sign dev"
when: manual
tags:
- deploy
variables:
AWS_CLOUDFRONT_ID: E1ERY5K2OTKKI1
script:
- source ${MSG_SYSTEM_DATA_DEPLOY_KEYFILE}
- aws s3 cp suite-common/message-system/files/config.v1.jws s3://data.trezor.io/config/develop/config.v1.jws --cache-control no-cache
- aws cloudfront create-invalidation --distribution-id ${AWS_CLOUDFRONT_ID} --paths '/config/develop/*'
interruptible: true
# connect deploy to dev
.base deploy to dev:
stage: deploy to dev
variables:
GIT_STRATEGY: none
DEPLOY_DIRECTORY: ${DEPLOY_BASE_DIR}/connect/${CI_COMMIT_REF_NAME}
environment:
name: $CI_COMMIT_REF_NAME
url: $BASE_REVIEW_URL/$CI_COMMIT_REF_NAME
script:
- rm -rfv ${DEPLOY_DIRECTORY}
- mkdir -pv ${DEPLOY_DIRECTORY}
- rsync -aviuzP packages/connect-iframe/build/ "${DEPLOY_DIRECTORY}/"
- rsync -aviuzP packages/connect-popup/build/ "${DEPLOY_DIRECTORY}/"
- rsync -aviuzP packages/connect-web/build/ "${DEPLOY_DIRECTORY}/"
- rsync -aviuzP packages/connect-explorer/build/ "${DEPLOY_DIRECTORY}/"
- ls -la ${DEPLOY_DIRECTORY}
- ls -la ${DEPLOY_DIRECTORY}/data
- ls -la ${DEPLOY_DIRECTORY}/fonts
- ls -la ${DEPLOY_DIRECTORY}/images
- ls -la ${DEPLOY_DIRECTORY}/js
tags:
- deploy
interruptible: true
deploy to dev for release branch:
extends: .base deploy to dev
only:
refs:
- /^release\/connect\//
needs:
- connect-web build production
- connect-explorer build production
deploy to dev for non-release branch:
extends: .base deploy to dev
except:
refs:
- /^release\/connect\//
needs:
- connect-web build
- connect-explorer build
# components deploy
.run_components_rules: &run_components_rules
refs:
- develop
- schedules
changes:
- packages/components
- packages/components-storybook
- yarn.lock
# Deploy
.deploy_common: &deploy_common
stage: deploy to dev
variables:
DEPLOY_DIRECTORY: ${DEPLOY_BASE_DIR}/components/${CI_COMMIT_REF_NAME}
environment:
name: ${CI_COMMIT_REF_NAME}
url: $BASE_REVIEW_URL/${CI_COMMIT_REF_NAME}
before_script: []
script:
- mkdir -p ${DEPLOY_DIRECTORY}
- rsync --delete -va packages/components/.build-storybook/ "${DEPLOY_DIRECTORY}/"
tags:
- deploy
interruptible: true
# Currently two jobs needed, it seems not to be possible to have a job depending on manual job
# https://gitlab.com/gitlab-org/gitlab/-/issues/31264
components storybook deploy sldev:
<<: *deploy_common
only:
<<: *run_components_rules
components storybook deploy dev manual:
<<: *deploy_common
when: manual
except:
<<: *run_components_rules