diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f4d289..a21e8ff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,7 @@ on: push: branches: - master + - beta concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -15,140 +16,122 @@ env: FORCE_COLOR: 3 jobs: - lint: - name: Format - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: actions/setup-python@v4 - with: - python-version: "3.x" - - uses: pre-commit/action@v3.0.1 - with: - extra_args: --hook-stage manual --all-files - - name: Run PyLint - run: | - echo "::add-matcher::$GITHUB_WORKSPACE/.github/matchers/pylint.json" - pipx run nox -s pylint - - checks: - name: Check Python ${{ matrix.python-version }} on ${{ matrix.runs-on }} - runs-on: ${{ matrix.runs-on }} - needs: [lint] - strategy: - fail-fast: false - matrix: - python-version: ["3.7", "3.8", "3.12"] - runs-on: [ubuntu-latest] - - include: - - python-version: pypy-3.10 - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - allow-prereleases: true - - - name: Install package - run: python -m pip install .[test] - - - name: Test package - run: >- - python -m pytest -ra --cov --cov-report=xml --cov-report=term - --durations=20 - - - name: Upload coverage report - uses: codecov/codecov-action@v4.1.0 - with: - token: ${{ secrets.CODECOV_TOKEN }} - - docs: - name: Check building docs - runs-on: ubuntu-latest - timeout-minutes: 15 - - steps: - - uses: actions/checkout@v4 - with: - token: ${{ secrets.GITHUB_TOKEN }} - ref: ${{ github.head_ref }} - - - uses: wntrblm/nox@2024.03.02 - with: - python-versions: "3.11" - - - name: Linkcheck - run: nox -s docs -- -b linkcheck - - - name: Build docs with warnings as errors - run: nox -s docs -- -W - - - name: Verify no changes required to API docs - run: | - nox -s build_api_docs - git diff --exit-code - - pass: - if: always() - needs: [lint, checks, docs] - runs-on: ubuntu-latest - timeout-minutes: 2 - steps: - - name: Decide whether the needed jobs succeeded or failed - uses: re-actors/alls-green@release/v1 - with: - jobs: ${{ toJSON(needs) }} + # lint: + # name: Format + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # with: + # fetch-depth: 0 + # - uses: actions/setup-python@v4 + # with: + # python-version: "3.x" + # - uses: pre-commit/action@v3.0.1 + # with: + # extra_args: --hook-stage manual --all-files + # - name: Run PyLint + # run: | + # echo "::add-matcher::$GITHUB_WORKSPACE/.github/matchers/pylint.json" + # pipx run nox -s pylint + + # checks: + # name: Check Python ${{ matrix.python-version }} on ${{ matrix.runs-on }} + # runs-on: ${{ matrix.runs-on }} + # needs: [lint] + # strategy: + # fail-fast: false + # matrix: + # python-version: ["3.7", "3.8", "3.12"] + # runs-on: [ubuntu-latest] + + # include: + # - python-version: pypy-3.10 + # runs-on: ubuntu-latest + + # steps: + # - uses: actions/checkout@v4 + # with: + # fetch-depth: 0 + + # - uses: actions/setup-python@v4 + # with: + # python-version: ${{ matrix.python-version }} + # allow-prereleases: true + + # - name: Install package + # run: python -m pip install .[test] + + # - name: Test package + # run: >- + # python -m pytest -ra --cov --cov-report=xml --cov-report=term + # --durations=20 + + # - name: Upload coverage report + # uses: codecov/codecov-action@v4.1.0 + # with: + # token: ${{ secrets.CODECOV_TOKEN }} + + # docs: + # name: Check building docs + # runs-on: ubuntu-latest + # timeout-minutes: 15 + + # steps: + # - uses: actions/checkout@v4 + # with: + # token: ${{ secrets.GITHUB_TOKEN }} + # ref: ${{ github.head_ref }} + + # - uses: wntrblm/nox@2024.03.02 + # with: + # python-versions: "3.11" + + # - name: Linkcheck + # run: nox -s docs -- -b linkcheck + + # - name: Build docs with warnings as errors + # run: nox -s docs -- -W + + # - name: Verify no changes required to API docs + # run: | + # nox -s build_api_docs + # git diff --exit-code + + # pass: + # if: always() + # needs: [lint, checks, docs] + # runs-on: ubuntu-latest + # timeout-minutes: 2 + # steps: + # - name: Decide whether the needed jobs succeeded or failed + # uses: re-actors/alls-green@release/v1 + # with: + # jobs: ${{ toJSON(needs) }} release: name: release runs-on: ubuntu-latest permissions: - contents: write - needs: [pass] + contents: write # to be able to publish a GitHub release + id-token: write # to enable use of OIDC for npm provenance + # needs: [pass] steps: - name: Checkout uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} - token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ github.token }} - uses: actions/setup-node@v4 with: - node-version: 20 + node-version: lts/* - - name: Semantic Release - uses: cycjimmy/semantic-release-action@v4 - id: semantic - with: - semantic_version: 22.0.5 - branches: | - [ - '+([0-9])?(.{+([0-9]),x}).x', - 'master', - 'main', - 'next', - 'next-major', - { - name: 'beta', - prerelease: true - }, - { - name: 'alpha', - prerelease: true - } - ] - extra_plugins: | - @semantic-release/exec - @semantic-release/github - conventional-changelog-conventionalcommits + - name: Install dependencies + run: | + npm install -g semantic-release@22 @semantic-release/git @semantic-release/exec @semantic-release/github conventional-changelog-conventionalcommits + + - name: Release + run: npx semantic-release env: - GITHUB_TOKEN: ${{ secrets.GH_PAT }} + GITHUB_TOKEN: ${{ github.token }} diff --git a/.releaserc.js b/.releaserc.js index 72ea85e..95a4f17 100644 --- a/.releaserc.js +++ b/.releaserc.js @@ -1,4 +1,19 @@ module.exports = { + branches: [ + '+([0-9])?(.{+([0-9]),x}).x', + 'main', + 'master', + 'next', + 'next-major', + { + name: 'beta', + prerelease: true + }, + { + name: 'alpha', + prerelease: true + } + ], dryRun: false, plugins: [ [ @@ -58,6 +73,7 @@ module.exports = { ].join(" && "), }, ], + "@semantic-release/git", "@semantic-release/github", ], };