diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 693a844..a64dabb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,54 +1,74 @@ name: CI on: - push: - branches: - - master - tags-ignore: - - "**" - pull_request: - branches: - - "**" + push: + branches: + - master + - feature/publish-package + tags-ignore: + - '**' + pull_request: + branches: + - '**' jobs: - build: - name: Build - runs-on: ubuntu-latest + build: + name: Build + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [16.x, 18.x, 20.x] + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: npm ci + - if: github.event_name == 'pull_request' + name: Lint commit messages + run: npx commitlint --from $GITHUB_BASE_REF --to $GITHUB_HEAD_REF + - run: npm run format:check + - run: npm run lint + - run: npm run build + - run: npm run coverage + - if: matrix.node-version == '20.x' + uses: actions/upload-artifact@v4 + with: + name: Code coverage + path: coverage/ + - if: matrix.node-version == '20.x' + run: npm run docs + - if: matrix.node-version == '20.x' + uses: actions/upload-artifact@v4 + with: + name: Documentation + path: docs/ - strategy: - matrix: - node-version: [16.x, 18.x, 20.x] - - steps: - - uses: actions/checkout@v4 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v4 - with: - node-version: ${{ matrix.node-version }} - cache: 'npm' - - run: npm ci - - if: github.event_name == 'pull_request' - name: Lint commit messages - run: npx commitlint --from $GITHUB_BASE_REF --to $GITHUB_HEAD_REF - - run: npm run format:check - - run: npm run lint - - run: npm run build - - run: npm run coverage - - if: matrix.node-version == '20.x' - uses: actions/upload-artifact@v4 - with: - name: Code coverage - path: coverage/ - - if: matrix.node-version == '20.x' - run: npm run docs - - if: matrix.node-version == '20.x' - uses: actions/upload-artifact@v4 - with: - name: Documentation - path: docs/ - - name: Deploy Docs - if: github.ref == 'refs/heads/master' && matrix.node-version == '20.x' - uses: peaceiris/actions-gh-pages@v4 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./docs + publish: + name: 'Publish' + needs: build + runs-on: ubuntu-latest + environment: npm_publish + # if: github.ref == 'refs/heads/master' + steps: + # - uses: actions/download-artifact@v4 + # with: + # name: Documentation + # path: docs/ + # - name: Deploy Docs + # uses: peaceiris/actions-gh-pages@v4 + # with: + # github_token: ${{ secrets.GITHUB_TOKEN }} + # publish_dir: ./docs + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20.x + cache: 'npm' + - run: npm ci + - name: Publish new version + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx semantic-release --dry-run