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

Create ci-workflow.yml #2

Closed
wants to merge 1 commit into from
Closed
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
164 changes: 164 additions & 0 deletions .github/workflows/ci-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
name: Compilation & tests

on:
workflow_dispatch:
push:
branches:
- main
- master
- develop
pull_request:

jobs:
job_build_release_plugin:
name: Build release plugin
strategy:
matrix:
include:
- sdk: "$NANOS_SDK"
name: "nanos"
- sdk: "$NANOX_SDK"
name: "nanox"
- sdk: "$NANOSP_SDK"
name: "nanosp"
- sdk: "$STAX_SDK"
name: "stax"

runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest

steps:
- name: Clone
uses: actions/checkout@v3
with:
submodules: recursive

- name: Build
run: |
make BOLOS_SDK=${{ matrix.sdk }} -j

job_scan_build:
name: Clang Static Analyzer
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest

steps:
- uses: actions/checkout@v3
with:
submodules: recursive

- name: Build with Clang Static Analyzer
run: |
scan-build --use-cc=clang -analyze-headers -enable-checker security -enable-checker unix -enable-checker valist -o scan-build --status-bugs make default

- uses: actions/upload-artifact@v3
if: failure()
with:
name: scan-build
path: scan-build

job_build_debug_plugin:
name: Build debug plugin
strategy:
matrix:
include:
- sdk: "$NANOS_SDK"
name: "nanos"
- sdk: "$NANOX_SDK"
name: "nanox"
- sdk: "$NANOSP_SDK"
name: "nanosp"

runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest

steps:
- name: Clone
uses: actions/checkout@v3
with:
submodules: recursive

- name: Build
run: |
make DEBUG=1 BOLOS_SDK=${{ matrix.sdk }} -j

- name: Rename binary
run: |
mv bin/app.elf plugin_${{ matrix.name }}.elf

- name: Upload binary
uses: actions/upload-artifact@v3
with:
name: binaries
path: plugin_${{ matrix.name }}.elf

job_build_debug_app:
name: Build debug Ethereum app
strategy:
matrix:
include:
- sdk: "$NANOS_SDK"
name: "nanos"
- sdk: "$NANOX_SDK"
name: "nanox"
- sdk: "$NANOSP_SDK"
name: "nanosp"

runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder-lite:latest

steps:
- name: Checkout app-ethereum
uses: actions/checkout@v3
with:
repository: LedgerHQ/app-ethereum
ref: ${{ ((github.base_ref || github.ref_name) == 'main' && 'master') || (github.base_ref || github.ref_name) }}

- name: Build
run: |
make DEBUG=1 BYPASS_SIGNATURES=1 BOLOS_SDK=${{ matrix.sdk }} -j

- name: Rename binary
run: |
mv bin/app.elf ethereum_${{ matrix.name }}.elf

- name: Upload binary
uses: actions/upload-artifact@v3
with:
name: binaries
path: ethereum_${{ matrix.name }}.elf

jobs-e2e-tests:
name: E2E Tests
needs: [job_build_debug_plugin, job_build_debug_app]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Download built binaries
uses: actions/download-artifact@v3
with:
name: binaries
path: tests/elfs/

- name: Install node
uses: actions/setup-node@v3
with:
node-version: "16.19.0"

- name: Install yarn
run: |
npm install -g yarn

- name: Install JS deps
run: |
cd tests && yarn install

- name: Run Zemu tests
run: |
cd tests && yarn test
Loading