Skip to content

Continuous Integration #817

Continuous Integration

Continuous Integration #817

Workflow file for this run

name: Continuous Integration
on:
push:
branches:
- master
pull_request: {}
schedule:
- cron: "15 6 * * 2" # weekly, on Tuesday morning
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@v3
with:
version: 8
- 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: ${{matrix.workspace}} Test (${{ matrix.node-version }})
runs-on: ubuntu-latest
timeout-minutes: 15
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@v3
with:
version: 8
- 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 test
build:
name: ${{matrix.workspace}} Build (${{ matrix.node-version }})
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@v3
with:
version: 8
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: pnpm
- name: install dependencies
run: pnpm install
- name: Build
run: pnpm run --filter ${{matrix.workspace}} build
# browserstack-test:
# name: Browserstack ${{matrix.workspace}} ${{ matrix.launcher }}
# runs-on: ubuntu-latest
# timeout-minutes: 20
# needs: [test]
# strategy:
# fail-fast: false
# max-parallel: 2
# matrix:
# workspace:
# - frontend
# - test-app
# launcher:
# - BS_OSX_Safari
# - BS_MS_Edge
# - BS_IOS_SAFARI
# - BS_CHROME_ANDROID
# steps:
# - uses: actions/checkout@v4
# - uses: pnpm/action-setup@v3
# with:
# version: 8
# - uses: actions/setup-node@v4
# with:
# node-version: 20
# cache: pnpm
# - run: pnpm install
# - name: test:browserstack ${{ matrix.launcher }}
# env:
# BROWSERSTACK_USERNAME: iliosgithub_1UGowwsqE
# # This is in plaintext on purpose. It has no privileged access to anything (this is a free
# # account) and it allows us to run browserstack tests against PRs.
# BROWSERSTACK_ACCESS_KEY: yJjw6sE6izkpUw9oasGT
# # The following is necessary when using browserstack under matrix builds on Github Actions
# # The Job ID + Run ID isn't unique across matrix runs and will fail when run simultaneously
# BROWSERSTACK_LOCAL_ID_SUFFIX: ${{ matrix.launcher }}
# run: |
# pnpm --filter ${{matrix.workspace}} exec ember browserstack:connect
# pnpm --filter ${{matrix.workspace}} exec ember test --test-port=7774 --host=127.0.0.1 --config-file=testem.browserstack.js --launch=${{ matrix.launcher }}
# pnpm --filter ${{matrix.workspace}} exec ember browserstack:disconnect
# pnpm --filter ${{matrix.workspace}} exec ember browserstack:results
firefox-test:
name: ${{matrix.workspace}} Firefox ${{ matrix.firefox-version }}
runs-on: ubuntu-latest
timeout-minutes: 20
needs: [test]
strategy:
fail-fast: false
matrix:
workspace:
- frontend
- test-app
- lti-course-manager
- lti-dashboard
firefox-version: [latest-esr]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 8
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- run: pnpm install
- name: Setup firefox
uses: browser-actions/setup-firefox@latest
with:
firefox-version: ${{ matrix.firefox-version }}
- run: firefox --version
- name: test
run: pnpm --filter ${{matrix.workspace}} exec ember test --launch=Firefox
test-with-embroider:
name: ${{matrix.workspace}} Test With Embroider
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
workspace:
- frontend
- lti-course-manager
- lti-dashboard
env:
BUILD_WITH_EMBROIDER: true
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 8
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- name: Install Dependencies
run: pnpm install
- name: Run Tests
run: pnpm --filter ${{matrix.workspace}} exec ember test
build-with-embroider:
name: ${{matrix.workspace}} Build With Embroider
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
workspace:
- frontend
- lti-course-manager
- lti-dashboard
env:
BUILD_WITH_EMBROIDER: true
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 8
- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm
- name: Install Dependencies
run: pnpm install
- name: Run Tests
run: pnpm run --filter frontend build
- name: Build
run: pnpm --filter ${{matrix.workspace}} run build