chore(deps): update actions/checkout action to v4 #1534
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: CI | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Restore cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
node_modules | |
**/node_modules | |
key: ${{ runner.os }}-${{ hashFiles('./yarn.lock') }} | |
- name: Use Node 18 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.x | |
- name: Install dependencies | |
run: yarn --frozen-lockfile --non-interactive | |
- name: Lint all files | |
run: yarn lint | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Restore cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
node_modules | |
**/node_modules | |
key: ${{ runner.os }}-${{ hashFiles('./yarn.lock') }} | |
- name: Use Node 18 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.x | |
- name: Install dependencies | |
run: yarn --frozen-lockfile --non-interactive | |
- name: Run tests with coverage | |
run: yarn test:coverage --ci --maxWorkers=2 | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
directory: ./coverage | |
fail_ci_if_error: true | |
- name: Archive coverage results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverage | |
path: coverage | |
build: | |
needs: [lint, test] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Restore cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
node_modules | |
**/node_modules | |
key: ${{ runner.os }}-${{ hashFiles('./yarn.lock') }} | |
- name: Use Node 18 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.x | |
- name: Install dependencies | |
run: yarn --frozen-lockfile --non-interactive | |
- name: Build library | |
run: yarn build | |
- name: Archive build files | |
uses: actions/upload-artifact@v3 | |
with: | |
name: dist | |
path: dist | |
deploy: | |
needs: [lint, test, build] | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' && github.repository_owner == 'worldturtlemedia' && (github.ref == 'refs/heads/master') | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Restore cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
node_modules | |
**/node_modules | |
key: ${{ runner.os }}-${{ hashFiles('./yarn.lock') }} | |
- name: Use Node 18 | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.x | |
- name: Install dependencies | |
run: yarn --frozen-lockfile --non-interactive | |
- name: Download built files | |
uses: actions/download-artifact@v3 | |
with: | |
name: dist | |
path: ./dist | |
- name: Run Semantic Release | |
uses: cycjimmy/semantic-release-action@v3 | |
with: | |
branch: master | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
- name: On release | |
if: steps.semantic.outputs.new_release_published == 'true' | |
run: | | |
echo Released verion: ${{ steps.semantic.outputs.new_release_version }} to ${{ steps.semantic.outputs.new_release_channel }} |