Skip to content

Merge pull request #8249 from ilios/dependabot/npm_and_yarn/percy/cli… #7428

Merge pull request #8249 from ilios/dependabot/npm_and_yarn/percy/cli…

Merge pull request #8249 from ilios/dependabot/npm_and_yarn/percy/cli… #7428

Workflow file for this run

name: Continuous Integration
on:
push:
branches:
- master
pull_request: {}
concurrency:
group: ci-${{ github.head_ref || github.ref }}
cancel-in-progress: true
env:
SW_DISABLED: true
COVERAGE: false
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- name: Install Dependencies
run: pnpm install
- name: Lint
run: pnpm run lint
test:
name: Test
runs-on: ubuntu-latest
timeout-minutes: 15
needs: [lint]
strategy:
fail-fast: false
matrix:
node-version: [20]
workspace:
- frontend
- test-app
- lti-course-manager
- lti-dashboard
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- name: Install Dependencies
run: pnpm install
- name: Run Tests
run: pnpm --filter ${{matrix.workspace}} exec ember exam --parallel=3 --load-balance --write-execution-file
env:
COVERAGE: true
- name: Store Code Coverage
uses: actions/upload-artifact@v4
with:
name: coverage-${{matrix.workspace}}
path: ./packages/${{matrix.workspace}}/coverage
retention-days: 1
- uses: actions/upload-artifact@v4
if: failure()
with:
name: replay-${{matrix.workspace}}-test.json
path: ./packages/${{matrix.workspace}}/test-execution-*.json
retention-days: 7
build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
node-version: [20]
workspace:
- frontend
- test-app
- lti-course-manager
- lti-dashboard
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- name: install dependencies
run: pnpm install
- name: Build
run: pnpm --filter ${{matrix.workspace}} run build
test-deploy-build:
name: Test Deploy Build
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
node-version: [20]
workspace:
- frontend
- lti-course-manager
- lti-dashboard
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- name: install dependencies
run: pnpm install
- name: Test ${{matrix.workspace}} Deploy
run: pnpm --filter ${{matrix.workspace}} run deploy:test
sonarqube_scan:
name: Scan with UCSF SonarQube
runs-on: ubuntu-latest
needs: [test]
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # disable shallow clone for full access to code
- uses: sonarsource/sonarqube-scan-action@v4
if: ${{ env.SONAR_TOKEN != '' }}
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_HOST_URL: https://sonarqube.ucsf.edu
with:
args: >
-Dsonar.projectKey=ilios_frontend_27a24e39-b0ec-405a-91a6-b6392ffcdd30
# https://community.sonarsource.com/t/xml-file-extension-is-binded-to-multiple-language/41745/4
-Dsonar.lang.patterns.mule=- sonar.excludePlugins=mule
upload-coverage:
name: Upload Coverage
runs-on: ubuntu-latest
needs: [test]
if: always()
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: coverage-frontend
path: coverage
- run: ls -lh
- run: ls -lh coverage
- name: Publish code coverage
uses: paambaati/codeclimate-action@v9.0.0
env:
CC_TEST_REPORTER_ID: 8c510ad3aa4b1a2a3d504dfdbcc5605e7966c019dc1e9b68a815de50b946ebc6
with:
coverageLocations: |
coverageLocations: ${{github.workspace}}/coverage/lcov.info:lcov