image: registry.gitlab.com/satoshilabs/trezor/trezor-firmware/environment variables: SDL_VIDEODRIVER: "dummy" XDG_RUNTIME_DIR: "/var/tmp" .only_changes_core: &only_changes_core only: changes: - ci/**/* - common/**/* - core/**/* - crypto/**/* - python/**/* - storage/**/* - tests/**/* - tools/**/* - vendor/**/* .only_changes_legacy: &only_changes_legacy only: changes: - ci/**/* - common/**/* - crypto/**/* - legacy/**/* - python/**/* - storage/**/* - tests/**/* - tools/**/* - vendor/**/* # Core core fw regular build: stage: build <<: *only_changes_core script: - cd core - pipenv run make build_cross - pipenv run make build_boardloader - pipenv run make build_bootloader - pipenv run make build_prodtest - pipenv run make build_firmware - pipenv run make sizecheck - cd .. - export VERSION=$(./tools/version.sh core/embed/firmware/version.h) - cp core/build/firmware/firmware.bin trezor-$VERSION-$CI_COMMIT_SHORT_SHA.bin artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" paths: - trezor-*.*.*-$CI_COMMIT_SHORT_SHA.bin expire_in: 1 week core fw btconly build: stage: build <<: *only_changes_core variables: BITCOIN_ONLY: "1" script: - cd core - pipenv run make build_firmware - mv build/firmware/firmware.bin build/firmware/firmware-bitcoinonly.bin - cd .. - pipenv run ./tools/check-bitcoin-only core/build/firmware/firmware-bitcoinonly.bin - export VERSION=$(./tools/version.sh core/embed/firmware/version.h) - cp core/build/firmware/firmware-bitcoinonly.bin trezor-$VERSION-$CI_COMMIT_SHORT_SHA-bitcoinonly.bin artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" paths: - trezor-*.*.*-$CI_COMMIT_SHORT_SHA-bitcoinonly.bin expire_in: 1 week core unix regular build: stage: build <<: *only_changes_core script: - cd core - pipenv run make build_unix core unix frozen regular build: stage: build <<: *only_changes_core script: - cd core - pipenv run make build_unix_frozen artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" paths: - core/build/unix/micropython - core/src/trezor/res/resources.py expire_in: 1 week core unix frozen btconly build: stage: build <<: *only_changes_core variables: BITCOIN_ONLY: "1" script: - cd core - pipenv run make build_unix_frozen - mv build/unix/micropython build/unix/micropython-bitcoinonly artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" paths: - core/build/unix/micropython-bitcoinonly - core/src/trezor/res/resources.py expire_in: 1 week core unix frozen debug build: stage: build <<: *only_changes_core variables: PYOPT: "0" script: - cd core - pipenv run make build_unix_frozen artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" untracked: true expire_in: 1 week # Crypto crypto build: stage: build only: changes: - ci/**/* - crypto/**/* script: - cd crypto - pipenv run make artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" paths: - crypto/tests/aestst - crypto/tests/libtrezor-crypto.so - crypto/tests/test_check - crypto/tests/test_openssl expire_in: 1 week # Legacy # TODO: add clang https://github.com/trezor/trezor-firmware/issues/44 legacy fw regular build: stage: build <<: *only_changes_legacy variables: MEMORY_PROTECT: "0" script: - cd legacy - pipenv run script/cibuild - pipenv run make -C bootloader - pipenv run make -C demo - cd .. - export VERSION=$(./tools/version.sh legacy/firmware/version.h) - cp legacy/firmware/trezor.bin trezor-$VERSION-$CI_COMMIT_SHORT_SHA.bin artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" paths: - trezor-*.*.*-$CI_COMMIT_SHORT_SHA.bin expire_in: 1 week legacy fw debug build: stage: build <<: *only_changes_legacy variables: DEBUG_LINK: "1" MEMORY_PROTECT: "0" script: - cd legacy - pipenv run script/cibuild legacy fw btconly build: stage: build <<: *only_changes_legacy variables: BITCOIN_ONLY: "1" MEMORY_PROTECT: "0" script: - cd legacy - pipenv run script/cibuild - mv firmware/trezor.bin firmware/trezor-bitcoinonly.bin - cd .. - pipenv run ./tools/check-bitcoin-only legacy/firmware/trezor-bitcoinonly.bin - export VERSION=$(./tools/version.sh legacy/firmware/version.h) - cp legacy/firmware/trezor-bitcoinonly.bin trezor-$VERSION-$CI_COMMIT_SHORT_SHA-bitcoinonly.bin artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" paths: - trezor-*.*.*-$CI_COMMIT_SHORT_SHA-bitcoinonly.bin expire_in: 1 week legacy emu regular build: stage: build <<: *only_changes_legacy variables: DEBUG_LINK: "1" EMULATOR: "1" script: - cd legacy - pipenv run script/cibuild artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" paths: - legacy/firmware/trezor.elf expire_in: 1 week legacy emu btconly build: stage: build <<: *only_changes_legacy variables: BITCOIN_ONLY: "1" DEBUG_LINK: "1" EMULATOR: "1" script: - cd legacy - pipenv run script/cibuild - mv firmware/trezor.elf firmware/trezor-bitcoinonly.elf artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" paths: - legacy/firmware/trezor-bitcoinonly.elf expire_in: 1 week