release #80
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |