1
0
mirror of https://github.com/videojs/video.js.git synced 2024-12-27 02:43:45 +02:00
video.js/.github/workflows/release.yml
Phil Hale 882f3af3b2
chore: Update CI and release workflows (#8214)
* Update deprecated set-output command.
* Update actions to use Node 16 rather than Node 12.
2023-03-30 15:22:28 +01:00

94 lines
3.0 KiB
YAML

name: release
on:
push:
tags:
# match semver versions
- "v[0-9]+.[0-9]+.[0-9]+"
# match semver pre-releases
- "v[0-9]+.[0-9]+.[0-9]+-*"
jobs:
release:
env:
NETLIFY_BASE: 'videojs-preview.netlify.app'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
# We need to fetch the entire history as conventional-changelog needs
# access to any number of git commits to build the changelog.
with:
fetch-depth: 0
- name: read node version from .nvmrc
run: echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_OUTPUT
shell: bash
id: nvm
- name: setup node
uses: actions/setup-node@v3
with:
node-version: '${{steps.nvm.outputs.NVMRC}}'
cache: npm
# this line is required for the setup-node action to be able to run the npm publish below.
registry-url: 'https://registry.npmjs.org'
- name: npm install
run: npm i --prefer-offline --no-audit
# publish runs build for us via a prepublishOnly script
- name: npm release
run: npm publish --tag next
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: get current changelog
run: node -e "console.log(require('./build/current-changelog.js')())" > CHANGELOG-LATEST.md
- name: get dashed package version for netlify
run: echo "VERSION=$(node -e "process.stdout.write(require('./package.json').version.split('.').join('-'))")" >> $GITHUB_OUTPUT
id: get-version
shell: bash
if: env.NETLIFY_BASE != ''
- name: add netlify preview to release notes
run: |
echo "" >> CHANGELOG-LATEST.md
echo "[netlify preview for this version](https://v${{steps.get-version.outputs.VERSION}}--${{env.NETLIFY_BASE}})" >> CHANGELOG-LATEST.md
if: env.NETLIFY_BASE != ''
- name: Create Github release
uses: softprops/action-gh-release@v1
with:
body_path: CHANGELOG-LATEST.md
token: ${{github.token}}
prerelease: true
files: dist/*.zip
discussion_category_name: Releases
deploy:
needs: release
runs-on: ubuntu-latest
environment: Deploy
env:
VJS_VERSION: ${{ github.event.head_commit.message }}
S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
S3_ACCESS: ${{ secrets.AWS_S3_ACCESS }}
S3_KEY: ${{ secrets.AWS_S3_KEY }}
steps:
- name: setup node
uses: actions/setup-node@v3
- name: npm install video.js
run: npm install "video.js@$VJS_VERSION"
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_S3_SECRET }}
aws-region: us-east-1
- name: Copy files to the CDN with the AWS CLI
run: |
aws s3 cp node_modules/video.js/dist s3://${S3_BUCKET}/${S3_KEY}/${VJS_VERSION}/ --acl ${S3_ACCESS} --recursive