diff --git a/.github/workflows/release.alpha.yml b/.github/workflows/release.alpha.yml deleted file mode 100644 index 8e75340f..00000000 --- a/.github/workflows/release.alpha.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Release (alpha) -on: - push: - tags: - - 'v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+' -jobs: - publish: - name: NPM Publish (alpha) - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v6 - with: - node-version: '24' - - run: npm install --global npm@11 - - run: npm ci - - run: npm test - - uses: JS-DevTools/npm-publish@v4 - with: - token: ${{ secrets.NPM_TOKEN }} - access: 'public' - tag: 'alpha' diff --git a/.github/workflows/release.beta.yml b/.github/workflows/release.beta.yml deleted file mode 100644 index 13046288..00000000 --- a/.github/workflows/release.beta.yml +++ /dev/null @@ -1,22 +0,0 @@ -name: Release (beta) -on: - push: - tags: - - 'v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+' -jobs: - publish: - name: NPM Publish (beta) - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v6 - with: - node-version: '24' - - run: npm install --global npm@11 - - run: npm ci - - run: npm test - - uses: JS-DevTools/npm-publish@v4 - with: - token: ${{ secrets.NPM_TOKEN }} - access: 'public' - tag: 'beta' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1b29fd81..61744432 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,11 +2,60 @@ name: Release on: push: tags: - - 'v[0-9]+.[0-9]+.[0-9]+' + - 'v*' # Triggers on any tag starting with v (e.g. v1.0.0, v1.0.0-beta.1) jobs: - release: + # ------------------------------------------------------------------ + # ALPHA RELEASE JOB + # Runs only if the tag contains '-alpha' + # ------------------------------------------------------------------ + publish-alpha: + name: NPM Publish (alpha) + runs-on: ubuntu-latest + if: contains(github.ref, '-alpha') + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v6 + with: + node-version: '24' + - run: npm install --global npm@11 + - run: npm ci + - run: npm test + - uses: JS-DevTools/npm-publish@v4 + with: + token: ${{ secrets.NPM_TOKEN }} + access: 'public' + tag: 'alpha' + + # ------------------------------------------------------------------ + # BETA RELEASE JOB + # Runs only if the tag contains '-beta' + # ------------------------------------------------------------------ + publish-beta: + name: NPM Publish (beta) + runs-on: ubuntu-latest + if: contains(github.ref, '-beta') + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v6 + with: + node-version: '24' + - run: npm install --global npm@11 + - run: npm ci + - run: npm test + - uses: JS-DevTools/npm-publish@v4 + with: + token: ${{ secrets.NPM_TOKEN }} + access: 'public' + tag: 'beta' + + # ------------------------------------------------------------------ + # PRODUCTION JOBS + # Run only if the tag does NOT contain a hyphen (e.g. v1.0.0) + # ------------------------------------------------------------------ + release-production: name: Github Release runs-on: ubuntu-latest + if: ${{ !contains(github.ref, '-') }} steps: - uses: actions/checkout@v6 - uses: docker://antonyurchenko/git-release:v6 @@ -16,9 +65,10 @@ jobs: PRE_RELEASE: 'false' CHANGELOG_FILE: 'CHANGELOG.md' ALLOW_EMPTY_CHANGELOG: 'false' - docs: + docs-production: name: Documentation runs-on: ubuntu-latest + if: ${{ !contains(github.ref, '-') }} steps: - uses: actions/checkout@v6 - uses: actions/setup-node@v6 @@ -33,9 +83,10 @@ jobs: commit_prefix: '[DOCS] ' commit_message: ${{ github.ref_name }} target_branch: 'master' - publish: - name: NPM Publish + publish-production: + name: NPM Publish (latest) runs-on: ubuntu-latest + if: ${{ !contains(github.ref, '-') }} steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v6