variables: GIT_SUBMODULE_STRATEGY: "recursive" stages: - environment - build - test environment: stage: environment image: docker:latest variables: CONTAINER_NAME: "$CI_REGISTRY/trezor/trezor-firmware/environment" services: - docker:dind before_script: - docker login $CI_REGISTRY -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD when: manual script: - docker pull $CONTAINER_NAME:latest || true - docker build --cache-from $CONTAINER_NAME:latest --tag $CONTAINER_NAME:$CI_COMMIT_SHA --tag $CONTAINER_NAME:latest . - docker push $CONTAINER_NAME:$CI_COMMIT_SHA - docker push $CONTAINER_NAME:latest image: registry.corp.sldev.cz/trezor/trezor-firmware/environment before_script: - pipenv install build core firmware: stage: build 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 # - test "$TREZOR_MODEL" = "1" || pipenv run make sizecheck artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" paths: - core/build/firmware/firmware.bin - core/build/bootloader/bootloader.bin expire_in: 1 week build core unix: stage: build script: - cd core - pipenv run make build_unix_noui artifacts: name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA" untracked: true expire_in: 1 day # TODO: matrix: DEBUG_LINK={0,1}, gcc vs clang build legacy: stage: build variables: HEADLESS: "1" script: - cd legacy - pipenv run script/cibuild - pipenv run make -C bootloader - pipenv run make -C demo test style: stage: test script: - pipenv run make style_check - cd core && pipenv run make templates_check # TODO test core unix unit: stage: test dependencies: - build core unix script: - cd core - pipenv run make test test core unix device: stage: test dependencies: - build core unix script: - cd core - pipenv run make test_emu test core unix monero: stage: test dependencies: - build core unix script: - cd core - pipenv run make test_emu_monero test common: stage: test script: - cd common - pipenv run jsonlint defs/*.json - pipenv run jsonlint defs/*/*.json - pipenv run python tools/cointool.py check - pipenv run python tools/support.py check --ignore-missing - pipenv run python protob/check.py - pipenv run python protob/graph.py protob/*.proto # TODO: artifacts? test crypto: stage: test script: - cd crypto - pipenv run make - ./tests/aestst - ./tests/test_check - CK_TIMEOUT_MULTIPLIER=20 valgrind -q --error-exitcode=1 ./tests/test_check - ./tests/test_openssl 1000 - ITERS=10 pipenv run pytest tests/ # TODO are ITERS=10 propagated? # TODO: matrix: DEBUG_LINK={0,1}, gcc vs clang # TODO add more based on deleted .travis.yml test legacy: stage: test variables: HEADLESS: "1" EMULATOR: "1" DEBUG_LINK: "1" script: - cd legacy - pipenv run script/cibuild - pipenv run script/test