123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- name: CI
- on:
- push:
- branches:
- - main
- - next
- - 'v*'
- paths-ignore:
- - 'docs/**'
- - '*.md'
- pull_request:
- paths-ignore:
- - 'docs/**'
- - '*.md'
- 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@v4
- with:
- persist-credentials: false
- - uses: actions/setup-node@v4
- 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@v4
- with:
- persist-credentials: false
- - uses: actions/setup-node@v4
- 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@v5
- with:
- license-check: true
- lint: true
- node-versions: '["16", "18", "20", "22", "24"]'
|