Bump braces from 3.0.2 to 3.0.3 in the npm_and_yarn group across 1 directory #10
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/download-artifact@v3 | ||
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/download-artifact@v3 | ||
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/download-artifact@v3 | ||
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/download-artifact@v3 | ||
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/download-artifact@v3 | ||
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 |