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