-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
I've kept the matrix generator script to run the package tests and extra tests for each Node.js version. Also added Node.js 24 to the build matrix.
- Loading branch information
Showing
7 changed files
with
570 additions
and
534 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,338 @@ | ||
# 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: Node.js package CI | ||
'on': | ||
push: | ||
branches: | ||
- main | ||
- develop | ||
pull_request: | ||
types: | ||
- opened | ||
- reopened | ||
- synchronize | ||
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 | ||
_PACKAGE_CACHE: v3 | ||
jobs: | ||
validation: | ||
name: Validation | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Validate CI setup | ||
run: rake build_matrix:github:validate | ||
lint-git: | ||
name: Git linter (Lintje) | ||
needs: validation | ||
runs-on: ubuntu-latest | ||
if: "${{ github.event_name != 'schedule' }}" | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
- name: Run Git linter | ||
uses: lintje/[email protected] | ||
lint-ruby: | ||
name: Ruby linter (RuboCop) | ||
needs: validation | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Install Ruby | ||
uses: ruby/setup-ruby@v1 | ||
with: | ||
ruby-version: '3.3' | ||
bundler-cache: true | ||
- name: Run RuboCop | ||
run: bundle exec rubocop | ||
lint-js: | ||
name: JavaScript linter (Prettier) | ||
needs: validation | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Checkout Mono | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: appsignal/mono | ||
- name: Install Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: 22 | ||
- name: Install dependencies | ||
run: mono bootstrap | ||
- name: Node.js Lint (Prettier) | ||
run: npm run lint | ||
integration-tests: | ||
name: Integration tests (${{matrix.name}}) | ||
needs: validation | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- name: Express + Redis | ||
test-app: express-redis | ||
- name: Express + Knex.js | ||
test-app: express-knex | ||
- name: Koa + MySQL | ||
test-app: koa-mysql | ||
- name: Koa + Mongo | ||
test-app: koa-mongo | ||
- name: Express + Mongoose | ||
test-app: express-mongoose | ||
- name: Express + Postgres | ||
test-app: express-postgres | ||
- name: Express + Apollo | ||
test-app: express-apollo | ||
- name: Express + Yoga | ||
test-app: express-yoga | ||
- name: Express + Prisma + Postgres | ||
test-app: express-prisma-postgres | ||
- name: Express + Prisma + Mongo | ||
test-app: express-prisma-mongo | ||
- name: Next.js | ||
test-app: nextjs | ||
- name: Nest.js | ||
test-app: nestjs | ||
- name: Fastify | ||
test-app: fastify | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Run integration tests | ||
run: script/integration_test_app ${{matrix.test-app}} | ||
build_24: | ||
name: Node.js 24 - Build | ||
needs: validation | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Checkout Mono | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: appsignal/mono | ||
path: tmp/mono | ||
- name: Install Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '24' | ||
- name: Install dependencies | ||
run: tmp/mono/bin/mono bootstrap --ci | ||
- name: Build package | ||
run: tmp/mono/bin/mono build | ||
- name: Check install report | ||
run: 'cat ext/install.report; cat ext/install.report | grep ''"status": "success"''' | ||
test_24_unit: | ||
name: Node.js 24 - Tests | ||
needs: build_24 | ||
env: | ||
NODE_VERSION: '24' | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Checkout Mono | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: appsignal/mono | ||
path: tmp/mono | ||
- name: Install Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '24' | ||
- name: Run tests | ||
run: mono test | ||
- name: Run tests for install failure | ||
run: npm run test:failure | ||
test_24_extra_diagnose: | ||
name: Node.js 24 - Extra test - diagnose | ||
needs: build_24 | ||
env: | ||
NODE_VERSION: '24' | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Run tests | ||
run: | | ||
git submodule init | ||
git submodule update | ||
LANGUAGE=nodejs test/integration/diagnose/bin/test | ||
build_22: | ||
name: Node.js 22 - Build | ||
needs: validation | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Checkout Mono | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: appsignal/mono | ||
path: tmp/mono | ||
- name: Install Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '22' | ||
- name: Install dependencies | ||
run: tmp/mono/bin/mono bootstrap --ci | ||
- name: Build package | ||
run: tmp/mono/bin/mono build | ||
- name: Check install report | ||
run: 'cat ext/install.report; cat ext/install.report | grep ''"status": "success"''' | ||
test_22_unit: | ||
name: Node.js 22 - Tests | ||
needs: build_22 | ||
env: | ||
NODE_VERSION: '22' | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Checkout Mono | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: appsignal/mono | ||
path: tmp/mono | ||
- name: Install Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '22' | ||
- name: Run tests | ||
run: mono test | ||
- name: Run tests for install failure | ||
run: npm run test:failure | ||
test_22_extra_diagnose: | ||
name: Node.js 22 - Extra test - diagnose | ||
needs: build_22 | ||
env: | ||
NODE_VERSION: '22' | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Run tests | ||
run: | | ||
git submodule init | ||
git submodule update | ||
LANGUAGE=nodejs test/integration/diagnose/bin/test | ||
build_20: | ||
name: Node.js 20 - Build | ||
needs: validation | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Checkout Mono | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: appsignal/mono | ||
path: tmp/mono | ||
- name: Install Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '20' | ||
- name: Install dependencies | ||
run: tmp/mono/bin/mono bootstrap --ci | ||
- name: Build package | ||
run: tmp/mono/bin/mono build | ||
- name: Check install report | ||
run: 'cat ext/install.report; cat ext/install.report | grep ''"status": "success"''' | ||
test_20_unit: | ||
name: Node.js 20 - Tests | ||
needs: build_20 | ||
env: | ||
NODE_VERSION: '20' | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Checkout Mono | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: appsignal/mono | ||
path: tmp/mono | ||
- name: Install Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '20' | ||
- name: Run tests | ||
run: mono test | ||
- name: Run tests for install failure | ||
run: npm run test:failure | ||
test_20_extra_diagnose: | ||
name: Node.js 20 - Extra test - diagnose | ||
needs: build_20 | ||
env: | ||
NODE_VERSION: '20' | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Run tests | ||
run: | | ||
git submodule init | ||
git submodule update | ||
LANGUAGE=nodejs test/integration/diagnose/bin/test | ||
build_18: | ||
name: Node.js 18 - Build | ||
needs: validation | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Checkout Mono | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: appsignal/mono | ||
path: tmp/mono | ||
- name: Install Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '18' | ||
- name: Install dependencies | ||
run: tmp/mono/bin/mono bootstrap --ci | ||
- name: Build package | ||
run: tmp/mono/bin/mono build | ||
- name: Check install report | ||
run: 'cat ext/install.report; cat ext/install.report | grep ''"status": "success"''' | ||
test_18_unit: | ||
name: Node.js 18 - Tests | ||
needs: build_18 | ||
env: | ||
NODE_VERSION: '18' | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Checkout Mono | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: appsignal/mono | ||
path: tmp/mono | ||
- name: Install Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '18' | ||
- name: Run tests | ||
run: mono test | ||
- name: Run tests for install failure | ||
run: npm run test:failure | ||
test_18_extra_diagnose: | ||
name: Node.js 18 - Extra test - diagnose | ||
needs: build_18 | ||
env: | ||
NODE_VERSION: '18' | ||
steps: | ||
- name: Checkout project | ||
uses: actions/checkout@v4 | ||
- name: Run tests | ||
run: | | ||
git submodule init | ||
git submodule update | ||
LANGUAGE=nodejs test/integration/diagnose/bin/test |
Oops, something went wrong.