| 1 | name: test & maybe release |
| 2 | |
| 3 | on: |
| 4 | push: |
| 5 | branches: |
| 6 | - main |
| 7 | pull_request: |
| 8 | workflow_dispatch: |
| 9 | |
| 10 | permissions: |
| 11 | contents: write |
| 12 | id-token: write |
| 13 | packages: write |
| 14 | pull-requests: write |
| 15 | |
| 16 | concurrency: |
| 17 | group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event_name == 'push' && github.sha || github.ref }} |
| 18 | cancel-in-progress: true |
| 19 | |
| 20 | jobs: |
| 21 | js-test-and-release: |
| 22 | uses: ipdxco/unified-github-workflows/.github/workflows/js-test-and-release.yml@v1.0 |
| 23 | secrets: |
| 24 | DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }} |
| 25 | DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} |
| 26 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |
| 27 | UCI_GITHUB_TOKEN: ${{ secrets.UCI_GITHUB_TOKEN }} |
| 28 | CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} |
| 29 | |
| 30 | ## Detect changs to the devtools package |
| 31 | changes: |
| 32 | runs-on: ubuntu-latest |
| 33 | outputs: |
| 34 | devtools-changed: ${{ steps.changes.outputs.devtools }} |
| 35 | steps: |
| 36 | - uses: actions/checkout@v5 |
| 37 | - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 |
| 38 | id: changes |
| 39 | with: |
| 40 | filters: | |
| 41 | devtools: |
| 42 | - 'packages/libp2p-devtools/**' |
| 43 | |
| 44 | publish-extension: |
| 45 | runs-on: ubuntu-latest |
| 46 | needs: [js-test-and-release, changes] |
| 47 | if: needs.js-test-and-release.outputs.release == 'true' && needs.changes.outputs.devtools-changed == 'true' |
| 48 | steps: |
| 49 | - uses: actions/checkout@v5 |
| 50 | with: |
| 51 | persist-credentials: false |
| 52 | - uses: actions/setup-node@v4 |
| 53 | with: |
| 54 | node-version: lts/* |
| 55 | - uses: ipfs/aegir/actions/cache-node-modules@main |
| 56 | - run: npm run package |
| 57 | working-directory: 'packages/libp2p-devtools' |
| 58 | - run: npm run publish:chrome-store |
| 59 | working-directory: 'packages/libp2p-devtools' |
| 60 | env: |
| 61 | CHROME_CLIENT_ID: ${{ secrets.CHROME_CLIENT_ID }} |
| 62 | CHROME_CLIENT_SECRET: ${{ secrets.CHROME_CLIENT_SECRET }} |
| 63 | CHROME_REFRESH_TOKEN: ${{ secrets.CHROME_REFRESH_TOKEN }} |
| 64 | CHROME_EXTENSION_ID: ${{ vars.CHROME_EXTENSION_ID }} |