name: Run Tests on: push: branches: - master pull_request: permissions: contents: read pages: write id-token: write jobs: ################## # Jobs with matrix ################## unit: runs-on: ubuntu-latest strategy: fail-fast: false matrix: node-version: [18, 'lts/*'] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ cache: 'npm' - run: npm ci - run: npm run unit integration: runs-on: ubuntu-latest strategy: fail-fast: false matrix: node-version: [18, 'lts/*'] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ services: regtest: image: junderw/bitcoinjs-regtest-server@sha256:5b69cf95d9edf6d5b3a00504665d6b3c382a6aa3728fe8ce897974c519061463 ports: - 8080:8080 steps: - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 with: node-version: ${{ matrix.node-version }} registry-url: https://registry.npmjs.org/ cache: 'npm' - run: npm ci - run: APIURL=http://127.0.0.1:8080/1 npm run integration ##################### # Jobs without matrix ##################### coverage: runs-on: ubuntu-latest steps: - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 with: node-version: 'lts/*' registry-url: https://registry.npmjs.org/ cache: 'npm' - run: npm ci - run: npm run coverage format: runs-on: ubuntu-latest steps: - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 with: node-version: 'lts/*' registry-url: https://registry.npmjs.org/ cache: 'npm' - run: npm ci - run: npm run format:ci gitdiff: runs-on: ubuntu-latest steps: - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 with: node-version: 'lts/*' registry-url: https://registry.npmjs.org/ cache: 'npm' - run: npm ci - run: npm run gitdiff:ci lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 with: node-version: 'lts/*' registry-url: https://registry.npmjs.org/ cache: 'npm' - run: npm ci - run: npm run lint lint-tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 with: node-version: 'lts/*' registry-url: https://registry.npmjs.org/ cache: 'npm' - run: npm ci - run: npm run lint:tests build-doc: runs-on: ubuntu-latest steps: - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2 - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 with: node-version: 'lts/*' registry-url: https://registry.npmjs.org/ cache: 'npm' - run: npm ci - run: npm run doc - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: name: github-pages path: ./docs deploy-doc: if: github.ref == 'refs/heads/master' environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest needs: build-doc steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4