102 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
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"]'
 |