Skip to content

Merge pull request #100 from Zondax/dev #666

Merge pull request #100 from Zondax/dev

Merge pull request #100 from Zondax/dev #666

Workflow file for this run

name: Build
on:
workflow_dispatch:
push:
jobs:
configure:
runs-on: ${{ github.repository_owner == 'zondax' && 'zondax-runners' || 'ubuntu-latest' }}
outputs:
uid_gid: ${{ steps.get-user.outputs.uid_gid }}
steps:
- id: get-user
run: echo "uid_gid=$(id -u):$(id -g)" >> $GITHUB_OUTPUT
build_and_test:
runs-on: ${{ github.repository_owner == 'zondax' && 'zondax-runners' || 'ubuntu-latest' }}
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y curl build-essential git wget unzip
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rust-src
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Install node
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install yarn
run: npm install -g yarn
- name: Run rust tests
run: make rust_tests
- name: Build app
run: |
export PATH=/home/runner/.local/bin:$PATH
sudo rm -rf app/target
make all
- name: Install zemu deps
run: make zemu_install
- name: Run tests
run: make zemu_test
- name: Upload Snapshots (only failure)
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: snapshots-tmp
path: tests_zemu/snapshots-tmp/
build_package_nanosp:
needs: [configure, build_and_test]
runs-on: ${{ github.repository_owner == 'zondax' && 'zondax-runners' || 'ubuntu-latest' }}
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y curl protobuf-compiler build-essential git wget unzip python3 python3-pip \
libssl-dev libffi-dev libreadline-dev zlib1g-dev libbz2-dev libsqlite3-dev libncurses5-dev \
libgdbm-dev libnss3-dev liblzma-dev libxml2-dev libxmlsec1-dev libffi-dev libyaml-dev \
clang gcc-arm-none-eabi gcc-multilib llvm-dev llvm jq libc6-dev
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2023-11-10
components: rust-src
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Install node
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install yarn
run: |
npm install -g yarn
- name: Install ledger deps
run: |
cargo install cargo-ledger
cargo ledger setup
pip install ledgerwallet
pip install ledgerblue
- name: Build app
run: |
export PATH=/home/runner/.local/bin:$PATH
PRODUCTION_BUILD=0 make buildS2
mv ./app/pkg/installer_s2.sh ./app/pkg/installer_nanos_plus.sh
- name: Set tag
id: nanosp
run: echo "tag_name=$(./app/pkg/installer_nanos_plus.sh version)" >> $GITHUB_OUTPUT
- name: Update Release
if: ${{ github.ref == 'refs/heads/master' }}
id: update_release_2
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
files: ./app/pkg/installer_nanos_plus.sh
tag_name: ${{ steps.nanosp.outputs.tag_name }}
draft: false
prerelease: false
- name: Upload script (only if not published)
if: ${{ github.ref != 'refs/heads/master' }}
uses: actions/upload-artifact@v3
with:
name: installer_nanos_plus.sh
path: ./app/pkg/installer_nanos_plus.sh
build_package_stax:
needs: [configure, build_and_test]
runs-on: ${{ github.repository_owner == 'zondax' && 'zondax-runners' || 'ubuntu-latest' }}
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y curl protobuf-compiler build-essential git wget unzip python3 python3-pip \
libssl-dev libffi-dev libreadline-dev zlib1g-dev libbz2-dev libsqlite3-dev libncurses5-dev \
libgdbm-dev libnss3-dev liblzma-dev libxml2-dev libxmlsec1-dev libffi-dev libyaml-dev \
clang gcc-arm-none-eabi gcc-multilib llvm-dev llvm jq libc6-dev
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2023-11-10
components: rust-src
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Install node
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install yarn
run: |
npm install -g yarn
- name: Install ledger deps
run: |
cargo install cargo-ledger
cargo ledger setup
pip install ledgerwallet
pip install ledgerblue
- name: Build app
run: |
export PATH=/home/runner/.local/bin:$PATH
PRODUCTION_BUILD=0 make buildST
- name: Set tag
id: stax
run: echo "tag_name=$(./app/pkg/installer_stax.sh version)" >> $GITHUB_OUTPUT
- name: Update Release
if: ${{ github.ref == 'refs/heads/master' }}
id: update_release_2
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
files: |
./app/pkg/installer_stax.sh
tag_name: ${{ steps.stax.outputs.tag_name }}
draft: false
prerelease: false
- name: Upload script (only if not published)
if: ${{ github.ref != 'refs/heads/master' }}
uses: actions/upload-artifact@v3
with:
name: installer_stax.sh
path: ./app/pkg/installer_stax.sh
build_package_flex:
needs: [configure, build_and_test]
runs-on: ${{ github.repository_owner == 'zondax' && 'zondax-runners' || 'ubuntu-latest' }}
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y curl protobuf-compiler build-essential git wget unzip python3 python3-pip \
libssl-dev libffi-dev libreadline-dev zlib1g-dev libbz2-dev libsqlite3-dev libncurses5-dev \
libgdbm-dev libnss3-dev liblzma-dev libxml2-dev libxmlsec1-dev libffi-dev libyaml-dev \
clang gcc-arm-none-eabi gcc-multilib llvm-dev llvm jq libc6-dev
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: nightly-2023-11-10
components: rust-src
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
- name: Install node
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install yarn
run: |
npm install -g yarn
- name: Install ledger deps
run: |
cargo install cargo-ledger
cargo ledger setup
pip install ledgerwallet
pip install ledgerblue
- name: Build app
run: |
export PATH=/home/runner/.local/bin:$PATH
PRODUCTION_BUILD=0 make buildFL
- name: Set tag
id: flex
run: echo "tag_name=$(./app/pkg/installer_flex.sh version)" >> $GITHUB_OUTPUT
- name: Update Release
if: ${{ github.ref == 'refs/heads/master' }}
id: update_release_2
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
files: |
./app/pkg/installer_flex.sh
tag_name: ${{ steps.flex.outputs.tag_name }}
draft: false
prerelease: false
- name: Upload script (only if not published)
if: ${{ github.ref != 'refs/heads/master' }}
uses: actions/upload-artifact@v3
with:
name: installer_flex.sh
path: ./app/pkg/installer_flex.sh