mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-15 02:48:11 +00:00
123 lines
4.1 KiB
YAML
123 lines
4.1 KiB
YAML
name: Common
|
|
|
|
on:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: '14 23 * * *' # every day @ 23:14
|
|
|
|
# cancel any previous runs on the same PR
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
crypto_build:
|
|
name: Crypto library
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
CC: gcc
|
|
ADDRESS_SANITIZER: 1
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- uses: cachix/install-nix-action@v23
|
|
with:
|
|
nix_path: nixpkgs=channel:nixos-unstable
|
|
- run: nix-shell --run "poetry install"
|
|
- run: cp -r crypto crypto_noasan
|
|
- run: nix-shell --run "poetry run make -C crypto"
|
|
- run: nix-shell --run "export ADDRESS_SANITIZER=0; poetry run make -C crypto_noasan"
|
|
- run: mv crypto_noasan/tests/test_check crypto/tests/test_check_noasan
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: crypto-build
|
|
path: |
|
|
crypto/tests/aestst
|
|
crypto/tests/libtrezor-crypto.so
|
|
crypto/tests/test_check
|
|
crypto/tests/test_check_noasan
|
|
crypto/tests/test_openssl
|
|
retention-days: 7
|
|
|
|
crypto_test:
|
|
name: Crypto test
|
|
needs: [crypto_build]
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
ASAN_OPTIONS: "verify_asan_link_order=0"
|
|
CK_TIMEOUT_MULTIPLIER: 5
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- uses: cachix/install-nix-action@v23
|
|
with:
|
|
nix_path: nixpkgs=channel:nixos-unstable
|
|
- run: nix-shell --run "poetry install"
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
name: crypto-build
|
|
path: crypto/tests
|
|
- run: chmod +x crypto/tests/*
|
|
- run: ./crypto/tests/aestst
|
|
- run: ./crypto/tests/test_check
|
|
- run: ./crypto/tests/test_openssl 1000
|
|
- run: nix-shell --run "cd crypto && ITERS=10 poetry run pytest tests"
|
|
- run: nix-shell --run "CK_TIMEOUT_MULTIPLIER=20 valgrind -q --error-exitcode=1 ./crypto/tests/test_check_noasan"
|
|
|
|
python_test:
|
|
name: Python test
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
LC_ALL: C.UTF-8
|
|
LANG: C.UTF-8
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- uses: cachix/install-nix-action@v23
|
|
with:
|
|
nix_path: nixpkgs=channel:nixos-unstable
|
|
- run: nix-shell --run "poetry install"
|
|
# Workaround for nixpkgs+tox integration failure which results in:
|
|
# ModuleNotFoundError: No module named '_sysconfigdata__linux_x86_64-linux-gnu'
|
|
# The value of _PYTHON_SYSCONFIGDATA_NAME has changed between python 3.7 and 3.8 and with
|
|
# multiple versions in your environment the older pythons don't seem to work under tox.
|
|
# When the variable is unset the interpreter seems to do the right thing. Can be removed in
|
|
# july 2023 when python 3.7 is EOLed.
|
|
# See also:
|
|
# https://github.com/NixOS/nixpkgs/blob/b00c7c2d1d905eb63c81a0917f1a94b763a7843b/pkgs/development/interpreters/python/cpython/default.nix#L103
|
|
# https://github.com/NixOS/nixpkgs/pull/98915
|
|
- run: nix-shell --arg fullDeps true --run "unset _PYTHON_SYSCONFIGDATA_NAME && cd python && poetry run tox"
|
|
|
|
python_support_test:
|
|
name: Python support test
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- uses: cachix/install-nix-action@v23
|
|
with:
|
|
nix_path: nixpkgs=channel:nixos-unstable
|
|
- run: nix-shell --run "poetry install"
|
|
- run: nix-shell --run "poetry run make python_support_check"
|
|
|
|
storage_test:
|
|
name: Storage test
|
|
# TODO: only for changes in storage/
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
- uses: cachix/install-nix-action@v23
|
|
with:
|
|
nix_path: nixpkgs=channel:nixos-unstable
|
|
- run: nix-shell --run "poetry install"
|
|
- run: unset PYTEST_TIMEOUT
|
|
- run: nix-shell --run "poetry run make -C storage/tests build"
|
|
- run: nix-shell --run "poetry run make -C storage/tests tests_all"
|