Skip to content

Merge pull request #8094 from jrjohnson/split-deploy #6967

Merge pull request #8094 from jrjohnson/split-deploy

Merge pull request #8094 from jrjohnson/split-deploy #6967

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
- 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@v3
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