Skip to content

CI

CI #40

Workflow file for this run

# 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 }}