You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.5 KiB
106 lines
2.5 KiB
name: CI |
|
|
|
on: |
|
push: |
|
branches: |
|
- main |
|
- next |
|
- 'v*' |
|
paths-ignore: |
|
- 'docs/**' |
|
- '*.md' |
|
pull_request: |
|
paths-ignore: |
|
- 'docs/**' |
|
- '*.md' |
|
|
|
# This allows a subsequently queued workflow run to interrupt previous runs |
|
concurrency: |
|
group: "${{ github.workflow }}-${{ github.event.pull_request.head.label || github.head_ref || github.ref }}" |
|
cancel-in-progress: true |
|
|
|
permissions: |
|
contents: read |
|
|
|
jobs: |
|
test-regression-check-node10: |
|
name: Test compatibility with Node.js 10 |
|
runs-on: ubuntu-latest |
|
permissions: |
|
contents: read |
|
steps: |
|
- uses: actions/checkout@v6 |
|
with: |
|
persist-credentials: false |
|
|
|
- uses: actions/setup-node@v6 |
|
with: |
|
node-version: '10' |
|
cache: 'npm' |
|
cache-dependency-path: package.json |
|
check-latest: true |
|
|
|
- name: Install |
|
run: | |
|
npm install --ignore-scripts |
|
|
|
- name: Copy project as fast-uri to node_node_modules |
|
run: | |
|
rm -rf ./node_modules/fast-uri/lib && |
|
rm -rf ./node_modules/fast-uri/index.js && |
|
cp -r ./lib ./node_modules/fast-uri/lib && |
|
cp ./index.js ./node_modules/fast-uri/index.js |
|
|
|
- name: Run tests |
|
run: | |
|
npm run test:unit |
|
env: |
|
NODE_OPTIONS: no-network-family-autoselection |
|
|
|
test-browser: |
|
name: Test browser compatibility |
|
runs-on: ${{ matrix.os }} |
|
strategy: |
|
fail-fast: false |
|
matrix: |
|
os: ['ubuntu-latest', 'windows-latest', 'macos-latest'] |
|
browser: ['chromium', 'firefox', 'webkit'] |
|
exclude: |
|
- os: ubuntu-latest |
|
browser: webkit |
|
permissions: |
|
contents: read |
|
steps: |
|
- uses: actions/checkout@v6 |
|
with: |
|
persist-credentials: false |
|
|
|
- uses: actions/setup-node@v6 |
|
with: |
|
node-version: '24' |
|
cache: 'npm' |
|
cache-dependency-path: package.json |
|
check-latest: true |
|
|
|
- name: Install dependencies |
|
run: | |
|
npm install --ignore-scripts |
|
|
|
- if: ${{ matrix.os == 'windows-latest' }} |
|
run: npx playwright install winldd |
|
|
|
- name: Run browser tests |
|
run: | |
|
npm run test:browser:${{ matrix.browser }} |
|
|
|
test: |
|
needs: |
|
- test-regression-check-node10 |
|
permissions: |
|
contents: write |
|
pull-requests: write |
|
uses: fastify/workflows/.github/workflows/plugins-ci.yml@v6 |
|
with: |
|
license-check: true |
|
lint: true |
|
node-versions: '["16", "18", "20", "22", "24"]'
|
|
|