CI #292
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
# Simple workflow for deploying static content to GitHub Pages | |
name: CI | |
on: | |
# Runs on pushes targeting the default branch | |
push: | |
branches: ["main"] | |
pull_request: | |
branches: ["main"] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
jobs: | |
test: | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18, 20] | |
runs-on: ubuntu-latest | |
name: Test Node ${{ matrix.node-version }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Use Node.js version | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: '' | |
- run: npm install | |
- run: npx playwright install --with-deps | |
- run: npm run build | |
- run: npm run test | |
env: | |
FORCE_COLOR: true | |
- name: Upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: artifact-${{ matrix.node-version }} | |
path: ./docs | |
test-experimental: | |
runs-on: ubuntu-latest | |
name: Test Node 22 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Use Node.js version | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 22 | |
cache: '' | |
- run: npm install | |
- run: npx playwright install --with-deps | |
- run: npm run build | |
- run: npm run test | |
continue-on-error: true | |
env: | |
FORCE_COLOR: true | |
deploy: | |
if: github.ref == 'refs/heads/main' | |
needs: test | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: artifact-20 | |
path: ./docs | |
- run: ls -al | |
- name: Generate list using Markdown | |
run: | | |
cat docs/mcr/coverage-summary.md >> $GITHUB_STEP_SUMMARY | |
cat docs/mcr/coverage-details.md >> $GITHUB_STEP_SUMMARY | |
- name: Analyze with SonarCloud | |
uses: sonarsource/sonarcloud-github-action@master | |
env: | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
with: | |
projectBaseDir: ./ | |
args: > | |
-Dsonar.organization=cenfun | |
-Dsonar.projectKey=monocart-coverage-reports | |
-Dsonar.projectName=monocart-coverage-reports | |
-Dsonar.javascript.lcov.reportPaths=docs/mcr/lcov.info | |
-Dsonar.sources=lib | |
-Dsonar.tests=test | |
-Dsonar.exclusions=dist/*,packages/* | |
- name: Coveralls | |
uses: coverallsapp/github-action@v2 | |
with: | |
files: ./docs/mcr/lcov.info | |
- name: Codacy Coverage Reporter | |
uses: codacy/codacy-coverage-reporter-action@v1 | |
with: | |
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
coverage-reports: ./docs/mcr/lcov.info | |
- name: Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
verbose: true | |
disable_search: true | |
files: ${{ github.workspace }}/docs/mcr/codecov.json | |
- name: Setup Pages | |
uses: actions/configure-pages@v4 | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: './docs' | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |