optionally retries in cli commands if user rejects Ledger request #13201
Workflow file for this run
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
name: Node.js CI | |
on: | |
pull_request: | |
branches: | |
- '**' | |
push: | |
branches: | |
- master | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
cache: 'yarn' | |
- name: Install packages | |
run: yarn --non-interactive --ignore-scripts | |
# Necessary since `--frozen-lockfile` does not work properly in yarn 1.x. | |
# https://github.com/yarnpkg/yarn/issues/5840 | |
- name: Check for lockfile changes | |
run: | | |
if [[ $(git status | grep yarn.lock) ]]; then | |
echo "yarn.lock has outstanding updates, please check them in." | |
exit 1 | |
fi | |
- name: Lint | |
run: yarn lint | |
- name: Build Rust bindings | |
run: yarn build | |
- name: Check for Rust binding changes | |
run: | | |
if [[ $(git status | grep index.) ]]; then | |
echo "Rust bindings have outstanding updates, please run 'yarn build' and check them in." | |
exit 1 | |
fi | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
shard: [1/3, 2/3, 3/3] | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
# Tests will only run on Node v20 due to https://github.com/nodejs/node/issues/35889 | |
node-version: 20 | |
cache: 'yarn' | |
- name: Cache Rust | |
uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: nodejs | |
- name: Install packages | |
run: yarn --non-interactive --frozen-lockfile | |
- name: Run tests | |
run: yarn test:coverage --maxWorkers=2 --workerIdleMemoryLimit=2000MB --shard=${{ matrix.shard }} | |
- name: Check for missing fixtures | |
run: | | |
if [[ $(git status | grep fixture) ]]; then | |
echo "New test fixtures have not been checked in, please check them in." | |
exit 1 | |
fi | |
- name: Upload coverage | |
if: github.repository == 'iron-fish/ironfish' | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
flags: ironfish | |
testslow: | |
name: Slow Tests | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
shard: [1/2, 2/2] | |
steps: | |
- name: Check out Git repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
# Tests will only run on Node v20 due to https://github.com/nodejs/node/issues/35889 | |
node-version: 20 | |
cache: 'yarn' | |
- name: Cache Rust | |
uses: Swatinem/rust-cache@v2 | |
with: | |
shared-key: nodejs | |
- name: Install packages | |
run: yarn --non-interactive --frozen-lockfile | |
- name: Run slow tests & coverage | |
run: yarn test:slow:coverage --maxWorkers=2 --workerIdleMemoryLimit=2000MB --shard=${{ matrix.shard }} | |
- name: Check for missing fixtures | |
run: | | |
if [[ $(git status | grep fixture) ]]; then | |
echo "New test fixtures have not been checked in, please check them in." | |
exit 1 | |
fi | |
- name: Upload coverage | |
if: github.repository == 'iron-fish/ironfish' | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
flags: ironfish |