Skip to content

[PLBCK-129] Comment out reverse line ordering #1

[PLBCK-129] Comment out reverse line ordering

[PLBCK-129] Comment out reverse line ordering #1

Workflow file for this run

name: Build
on:
push:
branches: [master]
tags: ['v*']
pull_request:
permissions: {}
defaults:
run:
shell: bash
jobs:
config:
runs-on: ubuntu-latest
outputs:
canUseSauce: ${{ steps.check_sauce_access.outputs.result == 'true' }}
tag: ${{ steps.extract_tag.outputs.result }}
isMainBranch: ${{ github.ref == 'refs/heads/master' }}
steps:
- name: check sauce access
id: check_sauce_access
run: |
if ! [[ -z "$SAUCE_USERNAME" ]] && ! [[ -z "$SAUCE_ACCESS_KEY" ]]; then
echo "::set-output name=result::true"
fi
env:
CI: true
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
- name: extract tag
id: extract_tag
uses: actions/github-script@v6
with:
script: |
const prefix = 'refs/tags/';
const ref = context.ref;
return ref.startsWith(prefix) ? ref.substring(prefix.length) : '';
result-encoding: string
build:
needs: config
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: check package-lock.json version
id: extract_tag
uses: actions/github-script@v6
with:
script: |
const fs = require('fs');
if (
JSON.parse(fs.readFileSync('./package-lock.json', { encoding: 'utf8' }))
.lockfileVersion !== 2
) {
throw new Error(
'Expecting package-lock.json version to be 2. Please make sure you are using npm 7.'
);
}
- name: cache node_modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
- name: install
run: |
npx -y npm-ci-please@^1.1.1
env:
CI: true
- name: lint
run: |
npm run lint
npm run prettier:verify
- name: set version
run: |
./scripts/set-package-version.sh
env:
CI: true
TAG: ${{ needs.config.outputs.tag }}
- name: build
run: |
npm run build:ci
npm run docs
./scripts/check-docs-built.sh
# check that hls.js doesn't error if requiring in node
# see https://github.com/video-dev/hls.js/pull/1642
node -e 'require("./" + require("./package.json").main)'
env:
CI: true
- name: upload build
uses: actions/upload-artifact@v3
with:
name: build
# version number is set in package.json so need to include that
path: |
package.json
package-lock.json
api-docs/**
dist/**
test_unit:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: cache node_modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
- name: download build
uses: actions/download-artifact@v3
with:
name: build
- name: install
run: |
npx -y npm-ci-please@^1.1.1
env:
CI: true
- name: run unit tests
run: |
npm run test:unit
env:
CI: true
cloudflare_pages:
needs: [config, test_unit]
if: needs.config.outputs.tag || needs.config.outputs.isMainBranch == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: cache node_modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
- name: download build
uses: actions/download-artifact@v3
with:
name: build
- name: install
run: |
npx -y npm-ci-please@^1.1.1
env:
CI: true
- name: build for CloudFlare
run: |
./scripts/build-cloudflare.sh
env:
CI: true
- name: deploy to CloudFlare
run: |
./scripts/deploy-cloudflare.sh
env:
CI: true
GITHUB_TOKEN: ${{ secrets.CI_GITHUB_TOKEN }}
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
update_draft_release:
needs: [config, test_unit]
if: needs.config.outputs.tag
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.draft_release.outputs.upload_url }}
permissions:
contents: write
steps:
- name: draft release notes
id: draft_release
uses: tjenkinson/release-drafter@48835fbc42b1c062a828995f9cb8301e6bdae677
with:
tag: ${{ needs.config.outputs.tag }}
name: ${{ needs.config.outputs.tag }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
release_github:
needs: [config, test_unit, update_draft_release]
if: needs.config.outputs.tag
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
- name: use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
- name: download build
uses: actions/download-artifact@v3
with:
name: build
- name: build release zip
run: |
zip -r dist.zip dist
- name: upload assets to github release
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ needs.update_draft_release.outputs.upload_url }}
asset_path: dist.zip
asset_name: release.zip
asset_content_type: application/zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
release_npm:
needs: [config, test_unit]
if: needs.config.outputs.tag || needs.config.outputs.isMainBranch == 'true'
runs-on: ubuntu-latest
permissions:
id-token: write
steps:
- uses: actions/checkout@v3
- name: cache node_modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
- name: download build
uses: actions/download-artifact@v3
with:
name: build
- name: install
run: |
npx -y npm-ci-please@^1.1.1
env:
CI: true
- name: publish to npm
run: |
./scripts/publish-npm.sh
env:
CI: true
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
TAG: ${{ needs.config.outputs.tag }}
test_functional_required:
needs: [config, test_unit]
if: needs.config.outputs.canUseSauce == 'true'
runs-on: ubuntu-latest
name: test_functional_required (${{ matrix.config }})
strategy:
fail-fast: true
max-parallel: 8
matrix:
include:
- config: chrome-win_10
ua: chrome
os: Windows 10
- config: chrome-osx_10.11-79.0
ua: chrome
os: OS X 10.11
uaVersion: '79.0'
- config: chrome-win_7-75.0
ua: chrome
os: Windows 7
uaVersion: '75.0'
steps:
- uses: actions/checkout@v3
- name: cache node_modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
- name: download build
uses: actions/download-artifact@v3
with:
name: build
- name: start SauceConnect tunnel
uses: saucelabs/sauce-connect-action@b632f7b7d4c5fce8bac327911322b033330b04ab
with:
username: ${{ secrets.SAUCE_USERNAME }}
accessKey: ${{ secrets.SAUCE_ACCESS_KEY }}
tunnelIdentifier: ${{ github.run_id }}-${{ matrix.config }}
retryTimeout: 300
- name: install
run: |
npx -y npm-ci-please@^1.1.1
env:
CI: true
- name: run functional tests
run: |
npm run test:func
npm run test:func:light
env:
CI: true
SAUCE_TUNNEL_ID: ${{ github.run_id }}-${{ matrix.config }}
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
UA: ${{ matrix.ua }}
UA_VERSION: ${{ matrix.uaVersion }}
OS: ${{ matrix.os }}
test_functional_optional:
needs: test_functional_required
runs-on: ubuntu-latest
continue-on-error: true
name: test_functional_optional (${{ matrix.config }})
strategy:
fail-fast: false
max-parallel: 8
matrix:
include:
- config: safari-macOS_10.15
ua: safari
os: macOS 10.15
- config: firefox-win_10
ua: firefox
os: Windows 10
steps:
- uses: actions/checkout@v3
- name: cache node_modules
uses: actions/cache@v3
env:
cache-name: cache-node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-build-${{ env.cache-name }}-
${{ runner.os }}-build-
${{ runner.os }}-
- name: use Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.node-version'
- name: download build
uses: actions/download-artifact@v3
with:
name: build
- name: start SauceConnect tunnel
uses: saucelabs/sauce-connect-action@b632f7b7d4c5fce8bac327911322b033330b04ab
with:
username: ${{ secrets.SAUCE_USERNAME }}
accessKey: ${{ secrets.SAUCE_ACCESS_KEY }}
tunnelIdentifier: ${{ github.run_id }}-${{ matrix.config }}
retryTimeout: 300
- name: install
run: |
npx -y npm-ci-please@^1.1.1
env:
CI: true
- name: run functional tests
run: |
npm run test:func
env:
CI: true
SAUCE_TUNNEL_ID: ${{ github.run_id }}-${{ matrix.config }}
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
UA: ${{ matrix.ua }}
UA_VERSION: ${{ matrix.uaVersion }}
OS: ${{ matrix.os }}