Merge pull request #587 from Tirke/renovate/major-eslint-monorepo #642
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: Test and release | |
concurrency: ${{ github.workflow }}-${{ github.ref }} | |
on: | |
push: | |
branches: | |
- main | |
permissions: write-all | |
jobs: | |
testing: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [18.x, 20.x] | |
tools-version: [[5, 4.4], [6, 5.0], [7, 6.0]] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install pnpm | |
uses: pnpm/[email protected] | |
- name: Install node ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: 'pnpm' | |
- name: Start Redis ${{ matrix.tools-version[0] }} | |
uses: supercharge/[email protected] | |
with: | |
redis-version: ${{ matrix.tools-version[0] }} | |
- name: Start MongoDB ${{ matrix.tools-version[1] }} | |
uses: supercharge/[email protected] | |
with: | |
mongodb-version: ${{ matrix.tools-version[1] }} | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Build | |
run: pnpm exec nx run-many --target=build --all | |
- name: Lint | |
run: pnpm exec nx run-many --target=lint --all | |
- name: Test | |
run: pnpm exec nx run-many --target=test --all | |
- name: Upload coverage | |
uses: codecov/codecov-action@v4 | |
publishing: | |
runs-on: ubuntu-latest | |
needs: [testing] | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install pnpm | |
uses: pnpm/[email protected] | |
- name: Install node | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: '.node-version' | |
cache: 'pnpm' | |
registry-url: 'https://registry.npmjs.org' | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile | |
- name: Build | |
run: pnpm exec nx run-many --target=build --all --skip-nx-cache | |
- name: Create Release Pull Request or Publish to npm | |
id: changesets | |
uses: changesets/action@v1 | |
with: | |
commit: 'chore: version packages' | |
title: 'chore: version packages' | |
publish: pnpm run release | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |