Skip to content

chore: minor test enhancements (#551) #19

chore: minor test enhancements (#551)

chore: minor test enhancements (#551) #19

Workflow file for this run

name: Check & Release
on:
# Push to master will deploy a beta version
push:
branches:
- master
# A release via GitHub releases will deploy a latest version
release:
types: [ published ]
jobs:
# NPM install is done in a separate job and cached to speed up the following jobs.
build_and_test:
name: Build & Test
if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest] # add windows-latest later
node-version: [14, 16]
steps:
-
uses: actions/checkout@v2
-
name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
-
name: Cache Node Modules
if: ${{ matrix.node-version == 16 }}
uses: actions/cache@v2
with:
path: |
node_modules
build
key: cache-${{ github.run_id }}-v16
-
name: Install Dependencies
run: npm install
- name: Add localhost-test to Linux hosts file
if: ${{ matrix.os == 'ubuntu-latest' }}
run: sudo echo "127.0.0.1 localhost-test" | sudo tee -a /etc/hosts
# -
# name: Add localhost-test to Windows hosts file
# if: ${{ matrix.os == 'windows-latest' }}
# run: echo "`n127.0.0.1 localhost-test">>C:\Windows\System32\drivers\etc\hosts
-
name: Run Tests
run: npm test
lint:
name: Lint
needs: [build_and_test]
runs-on: ubuntu-latest
steps:
-
uses: actions/checkout@v2
-
name: Use Node.js 16
uses: actions/setup-node@v1
with:
node-version: 16
-
name: Load Cache
uses: actions/cache@v2
with:
path: |
node_modules
build
key: cache-${{ github.run_id }}-v16
-
run: npm run lint
# The deploy job is long but there are only 2 important parts. NPM publish
# and triggering of docker image builds in the apify-actor-docker repo.
deploy:
name: Publish to NPM
needs: [lint]
runs-on: ubuntu-latest
steps:
-
uses: actions/checkout@v2
-
uses: actions/setup-node@v1
with:
node-version: 16
registry-url: https://registry.npmjs.org/
-
name: Load Cache
uses: actions/cache@v2
with:
path: |
node_modules
build
key: cache-${{ github.run_id }}-v16
-
# Determine if this is a beta or latest release
name: Set Release Tag
run: echo "RELEASE_TAG=$(if [ ${{ github.event_name }} = release ]; then echo latest; else echo beta; fi)" >> $GITHUB_ENV
-
# Check version consistency and increment pre-release version number for beta only.
name: Bump pre-release version
if: env.RELEASE_TAG == 'beta'
run: node ./.github/scripts/before-beta-release.js
-
name: Publish to NPM
run: NODE_AUTH_TOKEN=${{secrets.NPM_TOKEN}} npm publish --tag ${{ env.RELEASE_TAG }} --access public
-
# Latest version is tagged by the release process so we only tag beta here.
name: Tag Version
if: env.RELEASE_TAG == 'beta'
run: |
git_tag=v`node -p "require('./package.json').version"`
git tag $git_tag
git push origin $git_tag