mirror of
https://github.com/axios/axios.git
synced 2026-04-11 02:11:50 +08:00
* feat: added smoke tests for deno * feat: added bun smoke tests * chore: added workflows for deno and bun * chore: swap workflow implementation * chore: apply ai suggestion * chore: test alt install of bun deps * chore: deno install * chore: map bun file install * chore: try a different approach for bun * chore: unpack and then install for bun * chore: remove un-needed step * chore: try with tgx again for bun * chore: alternative zip approach * ci: full ci added back
239 lines
8.3 KiB
YAML
239 lines
8.3 KiB
YAML
name: Continuous integration
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build-and-run-vitest:
|
|
name: Build and run vitest
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
- name: Setup node
|
|
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
|
with:
|
|
node-version: 24.x
|
|
cache: npm
|
|
- name: Install dependencies
|
|
run: npm ci --ignore-scripts
|
|
- name: Build project
|
|
run: npm run build
|
|
- name: Install Playwright with deps
|
|
run: npx playwright install --with-deps
|
|
- name: Run unit tests
|
|
run: npm run test:vitest:unit
|
|
- name: Run browser tests
|
|
run: npm run test:vitest:browser:headless
|
|
- name: Pack npm tarball
|
|
run: npm pack
|
|
- name: Dependency Review
|
|
uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0
|
|
- name: Upload npm pack artifact
|
|
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
|
|
with:
|
|
name: axios-tarball
|
|
path: axios-*.tgz
|
|
if-no-files-found: error
|
|
retention-days: 1
|
|
|
|
cjs-smoke-tests:
|
|
name: CJS smoke tests (Node ${{ matrix.node-version }})
|
|
needs: build-and-run-vitest
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node-version: [12, 14, 16, 18]
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
- name: Setup node
|
|
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: npm
|
|
cache-dependency-path: tests/smoke/cjs/package-lock.json
|
|
- name: Download npm pack artifact
|
|
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
with:
|
|
name: axios-tarball
|
|
path: artifacts
|
|
- name: Install CJS smoke test dependencies
|
|
working-directory: tests/smoke/cjs
|
|
run: npm install --ignore-scripts
|
|
- name: Install packed axios
|
|
working-directory: tests/smoke/cjs
|
|
run: npm install --no-save ../../../artifacts/axios-*.tgz
|
|
- name: Run CJS smoke tests
|
|
working-directory: tests/smoke/cjs
|
|
run: npm run test:smoke:cjs:mocha
|
|
|
|
esm-smoke-tests:
|
|
name: ESM smoke tests (Node ${{ matrix.node-version }})
|
|
needs: build-and-run-vitest
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node-version: [20, 22, 24]
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
- name: Setup node
|
|
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: npm
|
|
cache-dependency-path: tests/smoke/esm/package-lock.json
|
|
- name: Download npm pack artifact
|
|
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
with:
|
|
name: axios-tarball
|
|
path: artifacts
|
|
- name: Install ESM smoke test dependencies
|
|
working-directory: tests/smoke/esm
|
|
run: npm install --ignore-scripts
|
|
- name: Install packed axios
|
|
working-directory: tests/smoke/esm
|
|
run: npm install --no-save ../../../artifacts/axios-*.tgz
|
|
- name: Run ESM smoke tests
|
|
working-directory: tests/smoke/esm
|
|
run: npm run test:smoke:esm:vitest
|
|
|
|
cjs-module-tests:
|
|
name: CJS module tests (Node ${{ matrix.node-version }})
|
|
needs: build-and-run-vitest
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node-version: [12, 14, 16, 18]
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
- name: Setup node
|
|
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: npm
|
|
cache-dependency-path: tests/module/cjs/package-lock.json
|
|
- name: Download npm pack artifact
|
|
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
with:
|
|
name: axios-tarball
|
|
path: artifacts
|
|
- name: Install CJS module test dependencies
|
|
working-directory: tests/module/cjs
|
|
run: npm install --ignore-scripts
|
|
- name: Install packed axios
|
|
working-directory: tests/module/cjs
|
|
run: npm install --no-save ../../../artifacts/axios-*.tgz
|
|
- name: Run CJS module tests
|
|
working-directory: tests/module/cjs
|
|
run: npm run test:module:cjs
|
|
|
|
esm-module-tests:
|
|
name: ESM module tests (Node ${{ matrix.node-version }})
|
|
needs: build-and-run-vitest
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node-version: [20, 22, 24]
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
- name: Setup node
|
|
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: npm
|
|
cache-dependency-path: tests/module/esm/package-lock.json
|
|
- name: Download npm pack artifact
|
|
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
with:
|
|
name: axios-tarball
|
|
path: artifacts
|
|
- name: Install ESM module test dependencies
|
|
working-directory: tests/module/esm
|
|
run: npm install --ignore-scripts
|
|
- name: Install packed axios
|
|
working-directory: tests/module/esm
|
|
run: npm install --no-save ../../../artifacts/axios-*.tgz
|
|
- name: Run ESM module tests
|
|
working-directory: tests/module/esm
|
|
run: npm run test:module:esm
|
|
|
|
bun-smoke-tests:
|
|
name: Bun smoke tests
|
|
needs: build-and-run-vitest
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
- name: Setup bun
|
|
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
|
|
- name: Download npm pack artifact
|
|
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
with:
|
|
name: axios-tarball
|
|
path: artifacts
|
|
- name: Install packed axios
|
|
env:
|
|
TMPDIR: ${{ runner.temp }}
|
|
BUN_INSTALL_CACHE_DIR: ${{ runner.temp }}/bun-cache
|
|
run: |
|
|
mkdir -p "$BUN_INSTALL_CACHE_DIR"
|
|
mv artifacts/axios-*.tgz artifacts/axios.tgz
|
|
cd tests/smoke/bun
|
|
bun add file:../../../artifacts/axios.tgz
|
|
- name: Run Bun smoke tests
|
|
working-directory: tests/smoke/bun
|
|
run: bun test
|
|
|
|
deno-smoke-tests:
|
|
name: Deno smoke tests
|
|
needs: build-and-run-vitest
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repo
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
- name: Setup deno
|
|
uses: denoland/setup-deno@e95548e56dfa95d4e1a28d6f422fafe75c4c26fb # v2.0.3
|
|
- name: Download npm pack artifact
|
|
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
with:
|
|
name: axios-tarball
|
|
path: artifacts
|
|
- name: Prepare packed axios dist
|
|
run: mkdir -p dist && tar -xzf artifacts/axios-*.tgz -C artifacts && cp -R artifacts/package/dist/. ./dist
|
|
- name: Install Deno smoke test dependencies
|
|
working-directory: tests/smoke/deno
|
|
run: deno install
|
|
- name: Run Deno smoke tests
|
|
working-directory: tests/smoke/deno
|
|
run: deno task test
|