From ce0bf4d9b57fde5983a60106cbbd6555b4a40141 Mon Sep 17 00:00:00 2001 From: alexp mule Date: Wed, 8 Apr 2026 14:09:42 -0300 Subject: [PATCH] ci: add GitHub Actions workflow for tests and npm publish - Mirror api-type-document: test on Ubuntu + Windows, release on main/master - Requires NPM_TOKEN repo secret for publish Made-with: Cursor --- .github/workflows/deployment.yml | 89 ++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 .github/workflows/deployment.yml diff --git a/.github/workflows/deployment.yml b/.github/workflows/deployment.yml new file mode 100644 index 0000000..ed19fd4 --- /dev/null +++ b/.github/workflows/deployment.yml @@ -0,0 +1,89 @@ +# Aligned with advanced-rest-client/api-type-document — tests + npm publish + GitHub Release on main/master. +# Repo secret required: NPM_TOKEN (npm granular token with publish for @api-components). +name: Tests and publishing +env: + FORCE_COLOR: 1 +on: + push: + branches: + - master + - main + - develop + pull_request: + branches: + - master + - main +jobs: + test_linux: + name: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-22.04] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + - name: Install dependencies + run: npm ci + - name: Run tests + run: npm test + + test_win: + name: Windows + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: npm + - name: Install dependencies + run: npm ci + - name: Run tests + run: npm test + + tag: + name: Publishing release + if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' + needs: + - test_linux + - test_win + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-node@v4 + with: + node-version: 20 + registry-url: https://registry.npmjs.org + cache: npm + - run: npm ci + - name: Read version from package.json + uses: culshaw/read-package-node-version-actions@v1 + id: package-node-version + - name: Changelog + uses: scottbrenner/generate-changelog-action@master + id: Changelog + - name: GitHub Release + uses: softprops/action-gh-release@v2 + with: + tag_name: v${{ steps.package-node-version.outputs.version }} + name: v${{ steps.package-node-version.outputs.version }} + body: | + ${{ steps.Changelog.outputs.changelog }} + draft: false + prerelease: false + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Publish to npm + run: npm publish --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}