Skip to content

Add HAVE_BOLOS_APP_STACK_CANARY by default #860

Add HAVE_BOLOS_APP_STACK_CANARY by default

Add HAVE_BOLOS_APP_STACK_CANARY by default #860

name: Build all apps on latest SDK
on:
workflow_dispatch:
inputs:
run_stax:
type: boolean
required: false
default: false
sdk_branch:
type: string
required: false
default: ''
pull_request:
env:
build_path_list: "
{ \"app-acala\" : \"./app\" ,
\"app-astar\" : \"./app\" ,
\"app-axelar\" : \"./app\" ,
\"app-bifrost\" : \"./app\" ,
\"app-coti\" : \"app\" ,
\"app-casper\" : \"./app\" ,
\"app-centrifuge\" : \"./app\" ,
\"app-cosmos\" : \"app\" ,
\"app-crypto.org chain\" : \"./app\" ,
\"app-dgld\" : \"app\" ,
\"app-decimal\" : \"./app\" ,
\"app-desmos\" : \"./app\" ,
\"app-dock\" : \"./app\" ,
\"app-edgeware\" : \"./app\" ,
\"app-filecoin\" : \"app\" ,
\"app-firmachain\" : \"./app\" ,
\"app-genshiro\" : \"./app\" ,
\"app-iov\" : \"app\" ,
\"app-internetcomputer\" : \"./app\" ,
\"app-karura\" : \"./app\" ,
\"app-kusama\" : \"app\" ,
\"app-medibloc\" : \"./app\" ,
\"app-near\" : \"workdir/app-near\" ,
\"app-nodle\" : \"./app\" ,
\"app-parallel\" : \"./app\" ,
\"app-persistence\" : \"./app\" ,
\"app-phala\" : \"./app\" ,
\"app-polkadex\" : \"./app\" ,
\"app-polkadot\" : \"app\" ,
\"app-polymesh\" : \"./app\" ,
\"app-reef\" : \"./app\" ,
\"app-secret\" : \"./app\" ,
\"app-stacks\" : \"./app\" ,
\"app-statemine\" : \"./app\" ,
\"app-statemint\" : \"./app\" ,
\"app-thorchain\" : \"./app\" ,
\"app-xxnetwork\" : \"./app\" }
"
build_for_stax_list: '
{\"app-solana\",
\"app-hedera\",
\"app-acala\",
\"app-bitcoin-new\",
\"app-mina\",
\"app-tezos\",
\"app-plugin-nested\",
\"app-plugin-staderlabs\",
\"app-plugin-lido\",
\"app-plugin-paraswap\",
\"app-plugin-1inch\",
\"app-plugin-yearn\",
\"app-plugin-quickswap\",
\"app-plugin-cometh\",
\"app-plugin-stakedao\",
\"app-plugin-ricochet\",
\"app-plugin-poap\",
\"app-plugin-angle\",
\"app-plugin-kiln\",
\"app-plugin-alkemi\",
\"app-plugin-nft\",
\"app-plugin-harvest\",
\"app-plugin-opensea-new\",
\"app-plugin-rarible\",
\"app-plugin-cbridge\",
\"app-plugin-ribbon\",
\"app-plugin-art-blocks\",
\"app-plugin-boilerplate\",
\"app-stellar\",
\"app-exchange\",
\"app-ssh-agent\",
\"app-neo\",
\"app-boilerplate\",
\"app-xrp\",
\"app-recovery-check\",
\"app-near\",
\"app-nervos\",
\"app-cardano\",
\"app-kusama\",
\"app-polymesh\",
\"app-monero\",
\"app-celo-spender\",
\"app-cosmos\",
\"app-statemine\",
\"app-polkadot\",
\"app-zilliqa\",
\"app-nem\",
\"app-eos\",
\"app-u2f\",
\"app-fantom\",
\"app-multiversx\",
\"app-symbol\",
\"app-vechain\",
\"app-decred\",
\"app-cryptocom\",
\"app-icp\",
\"app-tron\",
\"app-bitcoin\",
\"app-flow\",
\"app-passwords\",
\"app-secret\",
\"app-binance\",
\"app-ethereum\"}
'
repo_list: '
{\"repo_name\":[
\"app-velas\",
\"app-solana\",
\"app-hedera\",
\"app-iotex\",
\"app-karura\",
\"app-acala\",
\"app-bitcoin-new\",
\"app-ethereum\",
\"app-mina\",
\"app-tezos\",
\"app-plugin-nested\",
\"app-plugin-staderlabs\",
\"app-plugin-lido\",
\"app-plugin-paraswap\",
\"app-plugin-1inch\",
\"app-plugin-yearn\",
\"app-plugin-quickswap\",
\"app-plugin-cometh\",
\"app-plugin-stakedao\",
\"app-plugin-ricochet\",
\"app-plugin-poap\",
\"app-plugin-angle\",
\"app-plugin-kiln\",
\"app-plugin-alkemi\",
\"app-plugin-nft\",
\"app-plugin-harvest\",
\"app-plugin-opensea-new\",
\"app-plugin-rarible\",
\"app-plugin-cbridge\",
\"app-plugin-ribbon\",
\"app-plugin-art-blocks\",
\"app-plugin-boilerplate\",
\"app-stellar\",
\"app-exchange\",
\"app-ssh-agent\",
\"app-neo\",
\"app-boilerplate\",
\"app-xrp\",
\"app-radix\",
\"app-west\",
\"app-waves\",
\"app-recovery-check\",
\"app-near\",
\"app-lto\",
\"app-lisk\",
\"app-ergo\",
\"app-nervos\",
\"app-cardano\",
\"app-everscale\",
\"app-aptos\",
\"app-kusama\",
\"app-polymesh\",
\"app-fio\",
\"app-monero\",
\"app-celo-spender\",
\"app-cosmos\",
\"app-blockstack\",
\"app-statemint\",
\"app-statemine\",
\"app-polkadot\",
\"app-zilliqa\",
\"app-nem\",
\"app-eos\",
\"app-iota\",
\"app-oasis\",
\"app-u2f\",
\"app-fantom\",
\"app-multiversx\",
\"app-terra\",
\"app-symbol\",
\"app-arweave\",
\"app-vechain\",
\"app-decred\",
\"app-cryptocom\",
\"app-icp\",
\"app-hive\",
\"app-filecoin\",
\"app-algorand\",
\"app-dock\",
\"app-ton-new\",
\"app-tron\",
\"app-khala\",
\"app-firmachain\",
\"app-coti\",
\"app-phala\",
\"app-bitcoin\",
\"app-bifrost-kusama\",
\"app-flow\",
\"app-bifrost-new\",
\"app-bifrost\",
\"app-constellation\",
\"app-freeton\",
\"app-aergo\",
\"app-parallel\",
\"app-thorchain\",
\"app-centrifuge\",
\"app-passwords\",
\"app-nodle\",
\"app-oxen\",
\"app-navcoin\",
\"app-astar\",
\"app-helium\",
\"app-casper\",
\"app-shimmer\",
\"app-plugin-compound\",
\"app-polkadex\",
\"app-xxnetwork\",
\"app-decimal\",
\"app-axelar\",
\"app-aeternity\",
\"app-secret\",
\"app-desmos\",
\"app-medibloc\",
\"app-persistence\",
\"app-platon\",
\"app-elastos\",
\"app-groestlcoin\",
\"app-iota-legacy\",
\"app-mimblewimblecoin\",
\"app-genshiro\",
\"app-particl\",
\"app-ont\",
\"app-harmony-one\",
\"app-iov\",
\"app-windows-hello\",
\"app-hathor\",
\"app-safecoin\",
\"app-handshake\",
\"app-conflux\",
\"app-theta\",
\"app-tendermint\",
\"app-sia-x\",
\"app-qrl\",
\"app-nano\",
\"app-nimiq\",
\"app-kin-spl\",
\"app-kin\",
\"app-icx\",
\"app-hycon\",
\"app-fic\",
\"app-factom\",
\"app-binance\",
\"app-ark\",
\"app-ardor\",
\"app-aion\",
\"app-neo3\",
]}
'
# Failing apps
#\"app-avalanche\",
#\"app-kadena\",
#\"app-security-key\",
#\"app-starknet\",
#\"app-panacea\",
#\"app-insolar\",
#\"app-dgld\",
#\"app-sia\",
#\"app-streaming\",
#\"app-xinfin\",
#\"app-woleet\",
#\"app-reef\",
#\"app-edgeware\",
#\"app-celo-validator-signer\"
#\"app-hodl\",
#\"app-equilibrium\",
#\"app-revealer\",
#\"app-rise\",
#\"app-keepass\",
#\"app-bitsong\",
jobs:
prepare-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- id: set-matrix
run: echo "matrix=${{ env.repo_list }}" >> $GITHUB_OUTPUT
test-build:
name: Build for all targets
needs: [prepare-matrix]
strategy:
fail-fast: false
matrix:
${{ fromJSON(needs.prepare-matrix.outputs.matrix) }}
runs-on: ubuntu-latest
container:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest
steps:
- name: Clone App
uses: actions/checkout@v3
with:
repository: LedgerHQ/${{ matrix.repo_name }}
submodules: true
- name: Build Path
run: |
build_path=$(echo '${{ env.build_path_list}}' | sed -n 's/.*"${{ matrix.repo_name }}"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p')
echo "build_path=$build_path" >> $GITHUB_ENV
- name: Build for Stax
run: |
if echo "${{ env.build_for_stax_list }}" | grep -q "${{ matrix.repo_name }}" || [[ "${{ inputs.run_stax }}" ]]; then
echo "build_for_stax=true" >> $GITHUB_ENV
else
echo "build_for_stax=false" >> $GITHUB_ENV
fi
- name: Clone SDK
uses: actions/checkout@v3
with:
path: sdk
ref: ${{ inputs.sdk_branch }}
- name: Build NanoS
run: |
[ -n '${{ env.build_path }}' ] && cd ${{ env.build_path }}
TARGET=nanos BOLOS_SDK=$GITHUB_WORKSPACE/sdk make
- name: Build NanoX
run: |
[ -n '${{ env.build_path }}' ] && cd ${{ env.build_path }}
TARGET=nanox BOLOS_SDK=$GITHUB_WORKSPACE/sdk make
- name: Build NanoS2
run: |
[ -n '${{ env.build_path }}' ] && cd ${{ env.build_path }}
TARGET=nanos2 BOLOS_SDK=$GITHUB_WORKSPACE/sdk make
- name: Build Stax
if: ${{ env.build_for_stax == 'true' }}
run: |
[ -n '${{ env.build_path }}' ] && cd ${{ env.build_path }}
TARGET=stax BOLOS_SDK=$GITHUB_WORKSPACE/sdk make