name: Build on: push: branches: [ master ] jobs: build: runs-on: ubuntu-latest outputs: coverage: ${{ steps.coverage.outputs.value }} steps: - name: Checkout uses: actions/checkout@v3 - name: Setup Node uses: actions/setup-node@v3 with: node-version: 18 - name: Install run: npm i - name: Test and Coverage run: npm run test:coverage - name: Parse coverage uses: sergeysova/jq-action@v2 id: coverage with: cmd: 'jq .total.statements.pct coverage/coverage-summary.json' - name: Build demo run: npm run build:demo - name: Upload demo artifact uses: actions/upload-pages-artifact@v1 with: path: ./docs badge: runs-on: ubuntu-latest needs: build steps: - name: Create badge uses: schneegans/dynamic-badges-action@v1.6.0 with: auth: ${{ secrets.GIST_SECRET }} gistID: 7f2a04de5e494f9a3820832520ee2562 filename: badge.json label: Code Coverage message: ${{ needs.build.outputs.coverage }}% valColorRange: ${{ needs.build.outputs.coverage }} maxColorRange: 100 minColorRange: 0 deploy: runs-on: ubuntu-latest needs: build permissions: pages: write # to deploy to Pages id-token: write # to verify the deployment originates from an appropriate source environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v1