Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Divide CI in separate jobs #208

Merged
merged 1 commit into from
Apr 22, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 64 additions & 17 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
workflow_dispatch: {}

jobs:
ci:
check-firmware:
runs-on: ubuntu-latest
container:
image: ghcr.io/tillitis/tkey-builder:4
Expand All @@ -26,7 +26,7 @@ jobs:
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"

- name: check indentation of our firmware C code
- name: check indentation in firmware C code
working-directory: hw/application_fpga
run: |
make -C fw/tk1 checkfmt
Expand All @@ -37,10 +37,46 @@ jobs:
run: |
make check

- name: compile firmware and testfw
working-directory: hw/application_fpga
run: make firmware.bin testfw.bin

check-verilog:
runs-on: ubuntu-latest
container:
image: ghcr.io/tillitis/tkey-builder:4
steps:
- name: checkout
uses: actions/checkout@v4
with:
# fetch-depth: 0
persist-credentials: false

- name: fix
# https://github.com/actions/runner-images/issues/6775
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"

- name: lint verilog using verilator
working-directory: hw/application_fpga
run: make lint

build-other-firmwares:
runs-on: ubuntu-latest
container:
image: ghcr.io/tillitis/tkey-builder:4
steps:
- name: checkout
uses: actions/checkout@v4
with:
# fetch-depth: 0
persist-credentials: false

- name: fix
# https://github.com/actions/runner-images/issues/6775
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"

- name: compile ch552 firmware
working-directory: hw/boards/mta1-usb-v1/ch552_fw
run: make
Expand All @@ -49,15 +85,28 @@ jobs:
working-directory: hw/boards/tp1/firmware
run: ./build.sh

build-bitstream:
outputs:
commit_sha: ${{ github.sha }}
runs-on: ubuntu-latest
container:
image: ghcr.io/tillitis/tkey-builder:4
steps:
- name: checkout
uses: actions/checkout@v4
with:
# fetch-depth: 0
persist-credentials: false

- name: fix
# https://github.com/actions/runner-images/issues/6775
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"

- name: make production test gateware
working-directory: hw/production_test/application_fpga_test_gateware
run: make

- name: compile firmware and testfw
working-directory: hw/application_fpga
run: make firmware.bin testfw.bin

# doing this last as it takes long time
- name: make application FPGA gateware
working-directory: hw/application_fpga
run: make all
Expand All @@ -68,16 +117,10 @@ jobs:
path: |
hw/application_fpga/application_fpga.bin
hw/application_fpga/firmware.bin
key: ${{ runner.os }}-build-${{ github.sha }}
restore-keys: ${{ runner.os }}-build-


# TODO? first deal with hw/boards/ and hw/production_test/
# - name: check for SPDX tags
# run: ./LICENSES/spdx-ensure
key: build-${{ github.run_number }}-${{ github.sha }}-${{ github.run_attempt }}

check-hashes:
needs: ci
needs: build-bitstream
runs-on: ubuntu-latest
container:
image: ghcr.io/tillitis/tkey-builder:4
Expand All @@ -93,9 +136,13 @@ jobs:
path: |
hw/application_fpga/application_fpga.bin
hw/application_fpga/firmware.bin
key: ${{ runner.os }}-build-${{ needs.build.outputs.commit_sha }}
restore-keys: ${{ runner.os }}-build-
key: build-${{ github.run_number }}-${{ needs.build-bitstream.outputs.commit_sha }}-${{ github.run_attempt }}

- name: check matching hashes for firmware.bin & application_fpga.bin
working-directory: hw/application_fpga
run: make check-binary-hashes


# TODO? first deal with hw/boards/ and hw/production_test/
# - name: check for SPDX tags
# run: ./LICENSES/spdx-ensure