workstation #668
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: main | |
on: [push, pull_request] | |
jobs: | |
build-and-test: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, windows-latest, macOS-latest] | |
name: Build and test on ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
# caching NPM dependencies | |
# https://github.com/actions/cache/blob/master/examples.md#node---npm | |
- uses: actions/cache@v4 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- run: node -v | |
- run: npm ci | |
# only makes sense to check code format on 1 OS | |
- name: Linting 🧹 | |
if: matrix.os == 'ubuntu-20.04' | |
run: npm run format:check | |
- run: npm test | |
release: | |
runs-on: ubuntu-20.04 | |
name: release | |
needs: build-and-test | |
# only release from the master branch | |
if: github.ref == 'refs/heads/master' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- run: echo $GITHUB_SHA | |
# trying to use this action to install dependencies for semantic release | |
- uses: bahmutov/npm-install@HEAD | |
# https://github.com/cycjimmy/semantic-release-action | |
- name: Semantic Release | |
uses: cycjimmy/semantic-release-action@v3 | |
id: semantic | |
with: | |
branch: master | |
extra_plugins: | | |
@semantic-release/git | |
@semantic-release/changelog | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
- name: Push updates to branch for major version | |
# if there is a new version published, let's say v1.2.3 | |
# then this step will update branch "v1" to this commit | |
# https://github.com/cypress-io/github-action/branches | |
if: steps.semantic.outputs.new_release_published == 'true' | |
run: 'git push https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git HEAD:refs/heads/v${{steps.semantic.outputs.new_release_major_version}}' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |