feat: make impit the default HTTP client
#9988
This file contains hidden or 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
| name: Check | |
| on: | |
| push: | |
| branches: [ master, v4, renovate/** ] | |
| pull_request: | |
| branches: [ master, v4 ] | |
| env: | |
| RETRY_TESTS: 1 | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build_and_test: | |
| name: Build & Test | |
| if: (!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, 'docs:')) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # tests on windows are extremely unstable | |
| # os: [ ubuntu-22.04, windows-2019 ] | |
| os: [ ubuntu-22.04 ] | |
| node-version: [ 22, 24 ] | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| package-manager-cache: false | |
| - name: Turbo cache | |
| id: turbo-cache | |
| uses: actions/cache@v5 | |
| with: | |
| path: .turbo | |
| key: turbo-${{ github.job }}-${{ matrix.node-version }}-${{ github.ref_name }}-${{ github.sha }} | |
| restore-keys: | | |
| turbo-${{ github.job }}-${{ matrix.node-version }}-${{ github.ref_name }}- | |
| - uses: apify/workflows/pnpm-install@main | |
| - name: Install Playwright browsers | |
| run: pnpm exec playwright install --with-deps | |
| - name: Install Puppeteer Chrome | |
| run: pnpm exec puppeteer browsers install chrome | |
| - name: Build | |
| run: pnpm ci:build | |
| - name: Test TS | |
| run: pnpm tsc-check-tests | |
| - name: Typecheck documentation examples | |
| working-directory: ./docs | |
| run: pnpm typecheck | |
| - name: Tests | |
| run: pnpm test | |
| docs: | |
| name: Docs build | |
| if: (!contains(github.event.head_commit.message, '[skip ci]') && github.ref != 'refs/heads/master' && github.ref != 'refs/heads/v4') | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout Source code | |
| uses: actions/checkout@v6 | |
| - name: Use Node.js 24 | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| package-manager-cache: false | |
| - name: Turbo cache | |
| id: turbo-cache | |
| uses: actions/cache@v5 | |
| with: | |
| path: .turbo | |
| key: turbo-${{ github.job }}-${{ github.ref_name }}-${{ github.sha }} | |
| restore-keys: | | |
| turbo-${{ github.job }}-${{ github.ref_name }}- | |
| - uses: apify/workflows/pnpm-install@main | |
| - name: Build & deploy docs | |
| run: | | |
| cd website | |
| pnpm build | |
| env: | |
| APIFY_SIGNING_TOKEN: ${{ secrets.APIFY_SIGNING_TOKEN }} | |
| SEGMENT_TOKEN: ${{ secrets.SEGMENT_TOKEN }} | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| - name: Use Node.js 24 | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| package-manager-cache: false | |
| - name: Turbo cache | |
| id: turbo-cache | |
| uses: actions/cache@v5 | |
| with: | |
| path: .turbo | |
| key: turbo-${{ github.job }}-${{ github.ref_name }}-${{ github.sha }} | |
| restore-keys: | | |
| turbo-${{ github.job }}-${{ github.ref_name }}- | |
| - uses: apify/workflows/pnpm-install@main | |
| - name: Oxlint | |
| run: pnpm lint | |
| - name: Oxfmt format check | |
| run: pnpm format:check | |
| release_next: | |
| name: Release @next | |
| if: github.event_name == 'push' && contains(github.event.ref, 'v4') && (!contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, 'docs:')) | |
| needs: build_and_test | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v6 | |
| with: | |
| token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }} | |
| fetch-depth: 0 | |
| - name: Use Node.js 24 | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| package-manager-cache: false | |
| - name: Turbo cache | |
| id: turbo-cache | |
| uses: actions/cache@v5 | |
| with: | |
| path: .turbo | |
| key: turbo-${{ github.job }}-${{ github.ref_name }}-${{ github.sha }} | |
| restore-keys: | | |
| turbo-${{ github.job }}-${{ github.ref_name }}- | |
| - uses: apify/workflows/pnpm-install@main | |
| - name: Build | |
| run: pnpm ci:build | |
| - name: Generate changed packages list | |
| id: changed-packages | |
| # `set -eo pipefail` plus an explicit assignment ensures a lerna | |
| # crash fails the step instead of being swallowed by the outer | |
| # `echo | tee` (which would otherwise emit `changed_packages=0` | |
| # and skip the publish step silently). | |
| run: | | |
| set -eo pipefail | |
| changed=$(node ./node_modules/.bin/lerna changed -p | wc -l | xargs) | |
| echo "changed_packages=$changed" | tee -a "$GITHUB_OUTPUT" | |
| - name: Report nothing to release | |
| if: steps.changed-packages.outputs.changed_packages == '0' | |
| run: echo "Nothing to release" | |
| - name: Publish packages | |
| if: steps.changed-packages.outputs.changed_packages != '0' | |
| uses: apify/workflows/execute-workflow@main | |
| with: | |
| workflow: publish-to-npm.yml | |
| inputs: > | |
| { | |
| "ref": "${{ steps.commit.outputs.commit_long_sha || github.sha }}", | |
| "dist-tag": "v4" | |
| } | |
| # Docker image builds are only published off master; gated here so this block | |
| # carries cleanly to master when v4 is integrated, without firing on v4 pushes. | |
| - name: Collect versions for Docker images | |
| id: versions | |
| if: github.ref == 'refs/heads/master' | |
| run: | | |
| crawlee=`node -p "require('./packages/crawlee/package.json').version"` | |
| echo "crawlee=$crawlee" | tee -a $GITHUB_OUTPUT | |
| - name: Trigger Docker image builds | |
| uses: peter-evans/repository-dispatch@v4 | |
| # Trigger next images only if we have something new pushed | |
| if: github.ref == 'refs/heads/master' && steps.changed-packages.outputs.changed_packages != '0' | |
| with: | |
| token: ${{ secrets.APIFY_SERVICE_ACCOUNT_GITHUB_TOKEN }} | |
| repository: apify/apify-actor-docker | |
| event-type: build-node-images | |
| client-payload: > | |
| { | |
| "crawlee_version": "${{ steps.versions.outputs.crawlee }}", | |
| "release_tag": "beta" | |
| } |