SFT-2325: testing subshelling vs command substitution #1550
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SPDX-FileCopyrightText: © 2021 Foundation Devices, Inc. <hello@foundationdevices.com> | |
# SPDX-License-Identifier: GPL-3.0-or-later | |
# | |
# validate_and_build.yaml - GitHub actions for Passport | |
name: Validate and Build | |
on: [push] | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-20.04 | |
services: | |
registry: | |
image: registry:2 | |
ports: | |
- 5000:5000 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: docker/setup-buildx-action@v2 | |
with: | |
driver-opts: network=host | |
- uses: docker/build-push-action@v4 | |
with: | |
push: true | |
context: . | |
cache-from: type=gha | |
cache-to: type=gha | |
tags: localhost:5000/foundation-devices/passport2:latest | |
- uses: extractions/setup-just@69d82fb0233557aec017ef13706851d0694e0f1d | |
- run: echo "DOCKER_IMAGE=localhost:5000/foundation-devices/passport2:latest" >> $GITHUB_ENV | |
- name: Lint the codebase | |
run: just lint | |
build-firmware: | |
name: Build Firmware | |
runs-on: ubuntu-20.04 | |
needs: [lint] | |
strategy: | |
matrix: | |
build: | |
[ | |
{ screen: 'mono', suffix: '-founders-passport', hash_suffix: '-founders'}, | |
{ screen: 'color', suffix: '-passport', hash_suffix: ''}, | |
] | |
services: | |
registry: | |
image: registry:2 | |
ports: | |
- 5000:5000 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: docker/setup-buildx-action@v2 | |
with: | |
driver-opts: network=host | |
- uses: docker/build-push-action@v4 | |
with: | |
push: true | |
context: . | |
cache-from: type=gha | |
cache-to: type=gha | |
tags: localhost:5000/foundation-devices/passport2:latest | |
- uses: extractions/setup-just@aa5d15c144db4585980a44ebfdd2cf337c4f14cb | |
- run: | | |
echo "DOCKER_IMAGE=localhost:5000/foundation-devices/passport2:latest" >> $GITHUB_ENV | |
echo "SCREEN_MODE=$(echo "${{ matrix.build.screen }}" | tr a-z A-Z)" >> $GITHUB_ENV | |
- name: Build | |
run: | | |
echo "$SIGNING_KEY" > ports/stm32/signing_key.pem | |
version=$(cat version.txt) | |
echo "version=$(cat version.txt)" >> $GITHUB_ENV | |
just sign signing_key.pem "${version}" ${{ matrix.build.screen }} | |
just ports/stm32/hash build-Passport/v${version}-beta${{ matrix.build.suffix }}.bin ${{ matrix.build.screen}} | |
env: | |
SIGNING_KEY: ${{ secrets.UserSigningKey }} | |
- name: Upload firmware (unsigned) | |
uses: actions/upload-artifact@v2 | |
with: | |
name: v${{env.version}}-unsigned${{ matrix.build.suffix }}.bin | |
path: ports/stm32/build-Passport/firmware-${{ env.SCREEN_MODE }}.bin | |
- name: Upload firmware (signed) | |
uses: actions/upload-artifact@v2 | |
with: | |
name: v${{env.version}}-beta${{ matrix.build.suffix }}.bin | |
path: ports/stm32/build-Passport/v${{env.version}}-beta${{ matrix.build.suffix }}.bin | |
- name: Upload MD5 Hash | |
uses: actions/upload-artifact@v2 | |
with: | |
name: v${{env.version}}${{ matrix.build.hash_suffix }}-md5 | |
path: ports/stm32/build-Passport/v${{env.version}}-beta${{ matrix.build.hash_suffix }}-md5 | |
- name: Upload Build Hash | |
uses: actions/upload-artifact@v2 | |
with: | |
name: v${{env.version}}${{ matrix.build.hash_suffix }}-build-hash | |
path: ports/stm32/build-Passport/v${{env.version}}-beta${{ matrix.build.hash_suffix }}-build-hash | |
- name: Upload SHA256 Hash | |
uses: actions/upload-artifact@v2 | |
with: | |
name: v${{env.version}}${{ matrix.build.hash_suffix }}-sha256 | |
path: ports/stm32/build-Passport/v${{env.version}}-beta${{ matrix.build.hash_suffix }}-sha256 | |
- name: Upload Hashes Markdown | |
uses: actions/upload-artifact@v2 | |
with: | |
name: v${{env.version}}${{ matrix.build.hash_suffix }}-hashes.md | |
path: ports/stm32/build-Passport/v${{env.version}}-beta${{ matrix.build.hash_suffix }}-hashes.md | |
build-bootloader: | |
name: Build Bootloader | |
runs-on: ubuntu-20.04 | |
needs: [lint, build-firmware] | |
# TODO: PASS1-665. | |
strategy: | |
matrix: | |
screen: ['color'] | |
services: | |
registry: | |
image: registry:2 | |
ports: | |
- 5000:5000 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: docker/setup-buildx-action@v2 | |
with: | |
driver-opts: network=host | |
- uses: docker/build-push-action@v4 | |
with: | |
push: true | |
context: . | |
cache-from: type=gha | |
cache-to: type=gha | |
tags: localhost:5000/foundation-devices/passport2:latest | |
- uses: extractions/setup-just@aa5d15c144db4585980a44ebfdd2cf337c4f14cb | |
- run: | | |
echo "DOCKER_IMAGE=localhost:5000/foundation-devices/passport2:latest" >> $GITHUB_ENV | |
echo "SCREEN_MODE=$(echo ${{ matrix.screen }} | tr a-z A-Z)" >> $GITHUB_ENV | |
- name: Build | |
run: just build-bootloader ${{ matrix.screen }} | |
- name: Upload bootloader | |
uses: actions/upload-artifact@v2 | |
with: | |
name: bootloader-${{ env.SCREEN_MODE }}.bin | |
path: ports/stm32/boards/Passport/bootloader/arm/release/bootloader-${{ env.SCREEN_MODE }}.bin | |
build-simulator: | |
name: Build Simulator | |
runs-on: ubuntu-20.04 | |
needs: [lint, build-firmware] | |
strategy: | |
matrix: | |
screen: ['mono', 'color'] | |
services: | |
registry: | |
image: registry:2 | |
ports: | |
- 5000:5000 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: docker/setup-buildx-action@v2 | |
with: | |
driver-opts: network=host | |
- uses: docker/build-push-action@v4 | |
with: | |
push: true | |
context: . | |
cache-from: type=gha | |
cache-to: type=gha | |
tags: localhost:5000/foundation-devices/passport2:latest | |
- uses: extractions/setup-just@aa5d15c144db4585980a44ebfdd2cf337c4f14cb | |
- run: echo "DOCKER_IMAGE=localhost:5000/foundation-devices/passport2:latest" >> $GITHUB_ENV | |
- name: Build | |
run: just build-simulator ${{ matrix.screen }} | |
build-tools: | |
name: Build Tools | |
runs-on: ubuntu-20.04 | |
needs: [lint] | |
services: | |
registry: | |
image: registry:2 | |
ports: | |
- 5000:5000 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- uses: docker/setup-buildx-action@v2 | |
with: | |
driver-opts: network=host | |
- uses: docker/build-push-action@v4 | |
with: | |
push: true | |
context: . | |
cache-from: type=gha | |
cache-to: type=gha | |
tags: localhost:5000/foundation-devices/passport2:latest | |
- uses: extractions/setup-just@aa5d15c144db4585980a44ebfdd2cf337c4f14cb | |
- run: echo "DOCKER_IMAGE=localhost:5000/foundation-devices/passport2:latest" >> $GITHUB_ENV | |
- name: Build | |
run: just tools |