CI #40
This file contains hidden or 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
# DO NOT EDIT | |
# This is a generated file by the `rake build_matrix:github:generate` task. | |
# See `build_matrix.yml` for the build matrix. | |
# Generate this file with `rake build_matrix:github:generate`. | |
--- | |
name: CI | |
'on': | |
push: | |
branches: | |
- main | |
- develop | |
pull_request: | |
branches: | |
- main | |
- develop | |
schedule: | |
- cron: 0 0 * * 1-5 | |
concurrency: | |
group: "${{ github.workflow }}-${{ github.ref }}" | |
cancel-in-progress: "${{ !contains(github.ref, 'main')}}" | |
env: | |
RUNNING_IN_CI: 'true' | |
NODE_ENV: test | |
jobs: | |
validate: | |
name: Validate CI setup | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- name: Validate CI setup | |
run: rake build_matrix:github:validate | |
lint-ruby: | |
name: Ruby linter (RuboCop) | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- name: Run RuboCop | |
run: bundle exec rubocop | |
lint-javascript: | |
name: JavaScript linter (Prettier) | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '24' | |
cache: npm | |
- name: Install dependencies | |
run: npm install | |
- name: Run Prettier | |
run: npm run lint | |
lint-git: | |
name: Git linter (Lintje) | |
runs-on: ubuntu-latest | |
if: "${{ github.event_name != 'schedule' }}" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Run Git linter | |
uses: lintje/action@v0.11 | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
needs: | |
- validate | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '24' | |
cache: npm | |
- name: Setup mono | |
run: script/setup && echo "$HOME/mono/bin" >> $GITHUB_PATH | |
- name: Install dependencies | |
run: npm ci | |
- name: Bootstrap packages | |
run: mono bootstrap --ci | |
- name: Build packages | |
run: mono build | |
- name: Cache build artifacts | |
uses: actions/cache@v4 | |
with: | |
path: packages/*/dist | |
key: build-${{ github.sha }}-${{ github.run_id }} | |
test: | |
name: Test | |
runs-on: ubuntu-latest | |
needs: | |
- build | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- package: "@appsignal/angular" | |
dependencies: "@angular/core@12.2.15" | |
- package: "@appsignal/angular" | |
dependencies: "@angular/core@11.2.14" | |
- package: "@appsignal/javascript" | |
dependencies: '' | |
- package: "@appsignal/plugin-breadcrumbs-console" | |
dependencies: '' | |
- package: "@appsignal/plugin-window-events" | |
dependencies: '' | |
- package: "@appsignal/preact" | |
dependencies: preact@latest | |
- package: "@appsignal/preact" | |
dependencies: preact@10.7.3 | |
- package: "@appsignal/preact" | |
dependencies: preact@10.6.6 | |
- package: "@appsignal/react" | |
dependencies: react@latest react-dom@latest | |
- package: "@appsignal/react" | |
dependencies: react@19.0.0 react-dom@19.0.0 | |
- package: "@appsignal/react" | |
dependencies: react@18.2.0 react-dom@18.2.0 | |
- package: "@appsignal/react" | |
dependencies: react@18.1.0 react-dom@18.1.0 | |
- package: "@appsignal/react" | |
dependencies: react@17.0.2 react-dom@17.0.2 @testing-library/react@11.1.2 | |
- package: "@appsignal/stimulus" | |
dependencies: stimulus@latest | |
- package: "@appsignal/stimulus" | |
dependencies: stimulus@3.0.1 | |
- package: "@appsignal/stimulus" | |
dependencies: stimulus@2.0.0 | |
- package: "@appsignal/vue" | |
dependencies: vue@latest | |
- package: "@appsignal/vue" | |
dependencies: vue@3.2.20 | |
- package: "@appsignal/vue" | |
dependencies: vue@2.6.14 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '24' | |
cache: npm | |
- name: Setup mono | |
run: script/setup && echo "$HOME/mono/bin" >> $GITHUB_PATH | |
- name: Install dependencies | |
run: npm ci | |
- name: Bootstrap packages | |
run: mono bootstrap --ci | |
- name: Restore build artifacts | |
uses: actions/cache@v4 | |
with: | |
path: packages/*/dist | |
key: build-${{ github.sha }}-${{ github.run_id }} | |
- name: Install test dependencies | |
if: matrix.dependencies != '' | |
run: script/install_packages ${{ matrix.dependencies }} | |
- name: Run tests | |
run: mono test --package=${{ matrix.package }} |