mirror of
https://github.com/arcodange-org/mediabunny.git
synced 2026-09-27 02:43:48 +02:00
102 lines
4.0 KiB
YAML
102 lines
4.0 KiB
YAML
name: Release
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
|
|
permissions:
|
|
id-token: write # Required for OIDC
|
|
contents: read
|
|
|
|
jobs:
|
|
release:
|
|
name: Release
|
|
runs-on: ubuntu-latest
|
|
permissions: write-all
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Enforce stable releases target main
|
|
if: ${{ !github.event.release.prerelease && github.event.release.target_commitish != 'main' }}
|
|
uses: actions/github-script@ffc2c79a5b2490bd33e0a41c1de74b877714d736 # v3.2.0
|
|
with:
|
|
script: core.setFailed('Non-prerelease releases must target the main branch (got: ${{ github.event.release.target_commitish }}).')
|
|
|
|
- name: Merge main into release branch
|
|
if: ${{ !github.event.release.prerelease }}
|
|
run: |
|
|
git config user.name "github-actions[bot]"
|
|
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
git checkout release
|
|
git merge origin/main --no-ff -m "Merge main into release for tag ${{ github.event.release.tag_name }}"
|
|
git push origin release
|
|
|
|
- name: Set up Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
cache: 'npm'
|
|
registry-url: https://registry.npmjs.org
|
|
|
|
- name: Update npm
|
|
run: npm install -g npm@latest
|
|
|
|
- name: Get package.json version
|
|
id: package-json-version
|
|
run: echo "version=v$(cat package.json | jq '.version' --raw-output)" >> $GITHUB_OUTPUT
|
|
|
|
- name: Check package.json version against tag name
|
|
if: steps.package-json-version.outputs.version != github.event.release.tag_name
|
|
uses: actions/github-script@ffc2c79a5b2490bd33e0a41c1de74b877714d736 # v3.2.0
|
|
with:
|
|
script: core.setFailed('Release tag does not match package.json version!')
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Run tests
|
|
run: xvfb-run npm test
|
|
|
|
- name: Run build
|
|
run: npm run build
|
|
|
|
- name: Upload build artifacts
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: >
|
|
gh release upload ${{ github.event.release.tag_name }}
|
|
dist/bundles/mediabunny.cjs
|
|
dist/bundles/mediabunny.min.cjs
|
|
dist/bundles/mediabunny.mjs
|
|
dist/bundles/mediabunny.min.mjs
|
|
dist/mediabunny.d.ts
|
|
packages/mp3-encoder/dist/bundles/mediabunny-mp3-encoder.js
|
|
packages/mp3-encoder/dist/bundles/mediabunny-mp3-encoder.min.js
|
|
packages/mp3-encoder/dist/bundles/mediabunny-mp3-encoder.mjs
|
|
packages/mp3-encoder/dist/bundles/mediabunny-mp3-encoder.min.mjs
|
|
packages/mp3-encoder/dist/mediabunny-mp3-encoder.d.ts
|
|
packages/ac3/dist/bundles/mediabunny-ac3.js
|
|
packages/ac3/dist/bundles/mediabunny-ac3.min.js
|
|
packages/ac3/dist/bundles/mediabunny-ac3.mjs
|
|
packages/ac3/dist/bundles/mediabunny-ac3.min.mjs
|
|
packages/ac3/dist/mediabunny-ac3.d.ts
|
|
packages/aac-encoder/dist/bundles/mediabunny-aac-encoder.js
|
|
packages/aac-encoder/dist/bundles/mediabunny-aac-encoder.min.js
|
|
packages/aac-encoder/dist/bundles/mediabunny-aac-encoder.mjs
|
|
packages/aac-encoder/dist/bundles/mediabunny-aac-encoder.min.mjs
|
|
packages/aac-encoder/dist/mediabunny-aac-encoder.d.ts
|
|
packages/flac-encoder/dist/bundles/mediabunny-flac-encoder.js
|
|
packages/flac-encoder/dist/bundles/mediabunny-flac-encoder.min.js
|
|
packages/flac-encoder/dist/bundles/mediabunny-flac-encoder.mjs
|
|
packages/flac-encoder/dist/bundles/mediabunny-flac-encoder.min.mjs
|
|
packages/flac-encoder/dist/mediabunny-flac-encoder.d.ts
|
|
|
|
- name: Publish Mediabunny to npm
|
|
run: npm publish --access public ${{ github.event.release.prerelease && '--tag beta' || '' }}
|
|
|
|
- name: Publish workspace packages to npm
|
|
run: npm publish --access public --workspaces ${{ github.event.release.prerelease && '--tag beta' || '' }}
|