Bump actions/download-artifact from 3 to 4.1.7 in /.github/workflows in the github_actions group across 1 directory #11
This file contains 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
Romeo Rosete name: CI | ||
on: | ||
push: | ||
branches: ["main"] | ||
pull_request: | ||
branches: ["main"] | ||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
# See supported Node.js release schedule at https://nodejs.org/en/about/previous-releases | ||
node-version: [18.x, 20.x, 22.x] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Use Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
cache: "npm" | ||
- run: npm ci | ||
- run: npm run test | ||
- run: npm run check | ||
- run: npm run lint | ||
# Build a production tarball and use it to run the integration | ||
build: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
tarball-name: ${{ steps.pack.outputs.tarball-name }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Use Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: 20.x | ||
cache: "npm" | ||
- name: Build tarball | ||
id: pack | ||
run: | | ||
echo "tarball-name=$(npm --loglevel error pack)" >> $GITHUB_OUTPUT | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: package-tarball | ||
path: ${{ steps.pack.outputs.tarball-name }} | ||
integration-node: | ||
needs: [test, build] | ||
runs-on: ubuntu-latest | ||
env: | ||
REPLICATE_API_TOKEN: ${{ secrets.REPLICATE_API_TOKEN }} | ||
strategy: | ||
matrix: | ||
# See supported Node.js release schedule at https://nodejs.org/en/about/previous-releases | ||
node-version: [18.x, 20.x] | ||
suite: [commonjs, esm, typescript] | ||
fail-fast: false | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
name: package-tarball | ||
- name: Use Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
cache: "npm" | ||
- run: | | ||
npm --prefix integration/${{ matrix.suite }} install | ||
npm --prefix integration/${{ matrix.suite }} install "./${{ needs.build.outputs.tarball-name }}" | ||
npm --prefix integration/${{ matrix.suite }} test | ||
integration-browser: | ||
needs: [test, build] | ||
runs-on: ubuntu-latest | ||
env: | ||
REPLICATE_API_TOKEN: ${{ secrets.REPLICATE_API_TOKEN }} | ||
strategy: | ||
matrix: | ||
node-version: [20.x] | ||
browser: ["chromium", "firefox", "webkit"] | ||
suite: ["browser"] | ||
fail-fast: false | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
name: package-tarball | ||
- name: Use Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
cache: "npm" | ||
- run: | | ||
cd integration/${{ matrix.suite }} | ||
npm install | ||
npm install "../../${{ needs.build.outputs.tarball-name }}" | ||
npm exec -- playwright install ${{ matrix.browser }} | ||
npm exec -- playwright install-deps ${{ matrix.browser }} | ||
npm exec -- playwright test --browser ${{ matrix.browser }} | ||
integration-edge: | ||
needs: [test, build] | ||
runs-on: ubuntu-latest | ||
env: | ||
REPLICATE_API_TOKEN: ${{ secrets.REPLICATE_API_TOKEN }} | ||
strategy: | ||
matrix: | ||
node-version: [20.x] | ||
suite: [cloudflare-worker] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
name: package-tarball | ||
- name: Use Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
cache: "npm" | ||
- run: | | ||
test "${{ matrix.suite }}" = "cloudflare-worker" && echo "REPLICATE_API_TOKEN=${{ secrets.REPLICATE_API_TOKEN }}" > integration/${{ matrix.suite }}/.dev.vars | ||
npm --prefix integration/${{ matrix.suite }} install | ||
npm --prefix integration/${{ matrix.suite }} install "./${{ needs.build.outputs.tarball-name }}" | ||
npm --prefix integration/${{ matrix.suite }} test | ||
integration-bun: | ||
needs: [test, build] | ||
runs-on: ubuntu-latest | ||
env: | ||
REPLICATE_API_TOKEN: ${{ secrets.REPLICATE_API_TOKEN }} | ||
strategy: | ||
matrix: | ||
bun-version: [1.0.11] | ||
suite: [bun] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
name: package-tarball | ||
- name: Use Bun ${{ matrix.bun-version }} | ||
uses: oven-sh/setup-bun@v1 | ||
with: | ||
bun-version: ${{ matrix.bun-version }} | ||
- run: | | ||
cd integration/${{ matrix.suite }} | ||
bun uninstall replicate | ||
bun install "file:../../${{ needs.build.outputs.tarball-name }}" | ||
retries=3 | ||
for ((i=0; i<retries; i++)); do | ||
bun test && break || echo "Test failed, retrying..." | ||
done | ||
integration-nextjs: | ||
needs: [test, build] | ||
runs-on: ubuntu-latest | ||
env: | ||
REPLICATE_API_TOKEN: ${{ secrets.REPLICATE_API_TOKEN }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: actions/[email protected] | ||
with: | ||
name: package-tarball | ||
- name: Use Node.js | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: 20.x | ||
cache: "npm" | ||
- run: | | ||
npm --prefix integration/next install | ||
npm --prefix integration/next install "./${{ needs.build.outputs.tarball-name }}" | ||
npm --prefix integration/next run build |