From 58643c94c708a6ddbe65c8349c89378cc76cb91b Mon Sep 17 00:00:00 2001 From: Alan Shaw Date: Wed, 15 Nov 2023 15:54:24 +0300 Subject: [PATCH] chore: add release action --- .github/workflows/main.yml | 67 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..de77df1 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,67 @@ +name: ci +on: + push: + branches: + - main + pull_request: + branches: + - '**' + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: ${{matrix.node}} + - uses: bahmutov/npm-install@v1 + - name: Lint + run: npm run lint + test: + needs: check + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest] + node: [18, 20] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: ${{matrix.node}} + - uses: bahmutov/npm-install@v1 + - name: Test Node.js + run: npm test + changelog: + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + name: Changelog + runs-on: ubuntu-latest + outputs: + releases_created: ${{ steps.tag-release.outputs.releases_created }} + steps: + - uses: GoogleCloudPlatform/release-please-action@v3 + id: tag-release + with: + token: ${{ secrets.GITHUB_TOKEN }} + release-type: node + release: + if: github.event_name == 'push' && github.ref == 'refs/heads/main' && needs.changelog.outputs.releases_created + name: Release + runs-on: ubuntu-latest + needs: + - check + - test + - changelog + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + registry-url: https://registry.npmjs.org/ + node-version: 18 + - uses: bahmutov/npm-install@v1 + - name: Publish + env: + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + run: npm publish --access=public \ No newline at end of file