mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-22 15:38:11 +00:00
ci: split gitlab configuration files and store them in a 'ci' folder
The core/build-docker.sh si broken, but so it was already in master and is tracked to be fixed in #108.
This commit is contained in:
parent
597b9fabd1
commit
7c58d7d24e
176
.gitlab-ci.yml
176
.gitlab-ci.yml
@ -17,174 +17,14 @@ stages:
|
|||||||
- build
|
- build
|
||||||
- test
|
- 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:
|
before_script:
|
||||||
- pipenv install
|
- pipenv install
|
||||||
|
|
||||||
prebuild style:
|
include:
|
||||||
stage: prebuild
|
- ci/environment.yml
|
||||||
script:
|
- ci/prebuild.yml # common, style
|
||||||
- pipenv run make style_check
|
- ci/core.yml
|
||||||
- cd core && pipenv run make templates_check # TODO
|
- ci/legacy.yml
|
||||||
|
# - ci/python.yml TODO
|
||||||
prebuild common:
|
- ci/crypto.yml
|
||||||
stage: prebuild
|
- ci/storage.yml
|
||||||
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?
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
build legacy firmware:
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- cd legacy
|
|
||||||
- pipenv run script/cibuild
|
|
||||||
- pipenv run make -C bootloader
|
|
||||||
- pipenv run make -C demo
|
|
||||||
|
|
||||||
build legacy firmware debug:
|
|
||||||
stage: build
|
|
||||||
variables:
|
|
||||||
DEBUG_LINK: "1"
|
|
||||||
script:
|
|
||||||
- cd legacy
|
|
||||||
- pipenv run script/cibuild
|
|
||||||
- pipenv run make -C bootloader
|
|
||||||
- pipenv run make -C demo
|
|
||||||
|
|
||||||
build legacy firmware bitcoinonly:
|
|
||||||
stage: build
|
|
||||||
variables:
|
|
||||||
BITCOIN_ONLY: "1"
|
|
||||||
script:
|
|
||||||
- cd legacy
|
|
||||||
- pipenv run script/cibuild
|
|
||||||
- pipenv run make -C bootloader
|
|
||||||
- pipenv run make -C demo
|
|
||||||
|
|
||||||
build legacy emu:
|
|
||||||
stage: build
|
|
||||||
variables:
|
|
||||||
HEADLESS: "1"
|
|
||||||
EMULATOR: "1"
|
|
||||||
DEBUG_LINK: "1"
|
|
||||||
script:
|
|
||||||
- cd legacy
|
|
||||||
- pipenv run script/cibuild
|
|
||||||
artifacts:
|
|
||||||
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
||||||
untracked: true
|
|
||||||
expire_in: 1 day
|
|
||||||
|
|
||||||
build crypto:
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- cd crypto
|
|
||||||
- pipenv run make
|
|
||||||
artifacts:
|
|
||||||
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
|
||||||
untracked: true
|
|
||||||
expire_in: 1 day
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
# TODO: aren't some tests from .travis.yml missing?
|
|
||||||
test legacy emu:
|
|
||||||
stage: test
|
|
||||||
dependencies:
|
|
||||||
- build legacy emu
|
|
||||||
variables:
|
|
||||||
EMULATOR: "1"
|
|
||||||
script:
|
|
||||||
- cd legacy
|
|
||||||
- pipenv run script/test
|
|
||||||
|
|
||||||
test crypto:
|
|
||||||
stage: test
|
|
||||||
dependencies:
|
|
||||||
- build crypto
|
|
||||||
script:
|
|
||||||
- cd crypto
|
|
||||||
- ./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?
|
|
||||||
|
|
||||||
test storage:
|
|
||||||
stage: test
|
|
||||||
dependencies: []
|
|
||||||
script:
|
|
||||||
- cd storage/tests
|
|
||||||
- pipenv run make build
|
|
||||||
- pipenv run make tests_all
|
|
||||||
|
52
ci/core.yml
Normal file
52
ci/core.yml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
image: registry.corp.sldev.cz/trezor/trezor-firmware/environment
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
23
ci/crypto.yml
Normal file
23
ci/crypto.yml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
image: registry.corp.sldev.cz/trezor/trezor-firmware/environment
|
||||||
|
|
||||||
|
build crypto:
|
||||||
|
stage: build
|
||||||
|
script:
|
||||||
|
- cd crypto
|
||||||
|
- pipenv run make
|
||||||
|
artifacts:
|
||||||
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
||||||
|
untracked: true
|
||||||
|
expire_in: 1 day
|
||||||
|
|
||||||
|
test crypto:
|
||||||
|
stage: test
|
||||||
|
dependencies:
|
||||||
|
- build crypto
|
||||||
|
script:
|
||||||
|
- cd crypto
|
||||||
|
- ./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?
|
15
ci/environment.yml
Normal file
15
ci/environment.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
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 ci/
|
||||||
|
- docker push $CONTAINER_NAME:$CI_COMMIT_SHA
|
||||||
|
- docker push $CONTAINER_NAME:latest
|
54
ci/legacy.yml
Normal file
54
ci/legacy.yml
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
image: registry.corp.sldev.cz/trezor/trezor-firmware/environment
|
||||||
|
|
||||||
|
build legacy firmware:
|
||||||
|
stage: build
|
||||||
|
script:
|
||||||
|
- cd legacy
|
||||||
|
- pipenv run script/cibuild
|
||||||
|
- pipenv run make -C bootloader
|
||||||
|
- pipenv run make -C demo
|
||||||
|
|
||||||
|
build legacy firmware debug:
|
||||||
|
stage: build
|
||||||
|
variables:
|
||||||
|
DEBUG_LINK: "1"
|
||||||
|
script:
|
||||||
|
- cd legacy
|
||||||
|
- pipenv run script/cibuild
|
||||||
|
- pipenv run make -C bootloader
|
||||||
|
- pipenv run make -C demo
|
||||||
|
|
||||||
|
build legacy firmware bitcoinonly:
|
||||||
|
stage: build
|
||||||
|
variables:
|
||||||
|
BITCOIN_ONLY: "1"
|
||||||
|
script:
|
||||||
|
- cd legacy
|
||||||
|
- pipenv run script/cibuild
|
||||||
|
- pipenv run make -C bootloader
|
||||||
|
- pipenv run make -C demo
|
||||||
|
|
||||||
|
build legacy emu:
|
||||||
|
stage: build
|
||||||
|
variables:
|
||||||
|
HEADLESS: "1"
|
||||||
|
EMULATOR: "1"
|
||||||
|
DEBUG_LINK: "1"
|
||||||
|
script:
|
||||||
|
- cd legacy
|
||||||
|
- pipenv run script/cibuild
|
||||||
|
artifacts:
|
||||||
|
name: "$CI_JOB_NAME-$CI_COMMIT_SHORT_SHA"
|
||||||
|
untracked: true
|
||||||
|
expire_in: 1 day
|
||||||
|
|
||||||
|
# TODO: aren't some tests from .travis.yml missing?
|
||||||
|
test legacy emu:
|
||||||
|
stage: test
|
||||||
|
dependencies:
|
||||||
|
- build legacy emu
|
||||||
|
variables:
|
||||||
|
EMULATOR: "1"
|
||||||
|
script:
|
||||||
|
- cd legacy
|
||||||
|
- pipenv run script/test
|
18
ci/prebuild.yml
Normal file
18
ci/prebuild.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
image: registry.corp.sldev.cz/trezor/trezor-firmware/environment
|
||||||
|
|
||||||
|
prebuild style:
|
||||||
|
stage: prebuild
|
||||||
|
script:
|
||||||
|
- pipenv run make style_check
|
||||||
|
- cd core && pipenv run make templates_check # TODO
|
||||||
|
|
||||||
|
prebuild common:
|
||||||
|
stage: prebuild
|
||||||
|
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?
|
9
ci/storage.yml
Normal file
9
ci/storage.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
image: registry.corp.sldev.cz/trezor/trezor-firmware/environment
|
||||||
|
|
||||||
|
test storage:
|
||||||
|
stage: test
|
||||||
|
dependencies: []
|
||||||
|
script:
|
||||||
|
- cd storage/tests
|
||||||
|
- pipenv run make build
|
||||||
|
- pipenv run make tests_all
|
@ -21,7 +21,7 @@ else
|
|||||||
REPOSITORY=https://github.com/$REPOSITORY/trezor-firmware.git
|
REPOSITORY=https://github.com/$REPOSITORY/trezor-firmware.git
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker build -t $IMAGE --build-arg TOOLCHAIN_FLAVOR=$TOOLCHAIN_FLAVOR core
|
docker build -t $IMAGE --build-arg TOOLCHAIN_FLAVOR=$TOOLCHAIN_FLAVOR ci/
|
||||||
|
|
||||||
USER=$(ls -lnd . | awk '{ print $3 }')
|
USER=$(ls -lnd . | awk '{ print $3 }')
|
||||||
GROUP=$(ls -lnd . | awk '{ print $4 }')
|
GROUP=$(ls -lnd . | awk '{ print $4 }')
|
||||||
|
@ -10,6 +10,6 @@ IMAGE=trezor-mcu-build
|
|||||||
USER=$(ls -lnd . | awk '{ print $3 }')
|
USER=$(ls -lnd . | awk '{ print $3 }')
|
||||||
GROUP=$(ls -lnd . | awk '{ print $4 }')
|
GROUP=$(ls -lnd . | awk '{ print $4 }')
|
||||||
|
|
||||||
docker build -t "$IMAGE" .
|
docker build -t "$IMAGE" ci/
|
||||||
docker run -it -v $(pwd):/src:z --user="$USER:$GROUP" "$IMAGE" \
|
docker run -it -v $(pwd):/src:z --user="$USER:$GROUP" "$IMAGE" \
|
||||||
/src/legacy/script/fullbuild "$BOOTLOADER_COMMIT" "$FIRMWARE_COMMIT"
|
/src/legacy/script/fullbuild "$BOOTLOADER_COMMIT" "$FIRMWARE_COMMIT"
|
||||||
|
Loading…
Reference in New Issue
Block a user