mirror of
https://github.com/videojs/video.js.git
synced 2024-12-23 02:04:34 +02:00
882f3af3b2
* Update deprecated set-output command. * Update actions to use Node 16 rather than Node 12.
94 lines
3.0 KiB
YAML
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
|