Skip to content

feat: make impit the default HTTP client #9988

feat: make impit the default HTTP client

feat: make impit the default HTTP client #9988

Workflow file for this run

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"
}