2828      - run : npm run lint 
2929
3030
31+   #  Build a production tarball and use it to run the integration
32+   build :
33+     runs-on : ubuntu-latest 
34+ 
35+     outputs :
36+       tarball-name : ${{ steps.pack.outputs.tarball-name }} 
37+ 
38+     steps :
39+       - uses : actions/checkout@v3 
40+       - name : Use Node.js 
41+         uses : actions/setup-node@v3 
42+         with :
43+           node-version : 20.x 
44+           cache : " npm" 
45+       - name : Build tarball 
46+         id : pack 
47+         run : | 
48+           echo "tarball-name=$(npm --loglevel error pack)" >> $GITHUB_OUTPUT 
49+        - uses : actions/upload-artifact@v3 
50+         with :
51+           name : package-tarball 
52+           path : ${{ steps.pack.outputs.tarball-name }} 
53+ 
54+ 
3155  integration-node :
32-     needs : test 
56+     needs : [ test, build] 
3357    runs-on : ubuntu-latest 
3458
3559    env :
@@ -47,21 +71,22 @@ jobs:
4771
4872    steps :
4973      - uses : actions/checkout@v3 
74+       - uses : actions/download-artifact@v3 
75+         with :
76+           name : package-tarball 
5077      - name : Use Node.js ${{ matrix.node-version }} 
5178        uses : actions/setup-node@v3 
5279        with :
5380          node-version : ${{ matrix.node-version }} 
5481          cache : " npm" 
55-       #  Build a production tarball and run the integration tests against it.
5682      - run : | 
57-           PKG_TARBALL=$(npm --loglevel error pack) 
5883          npm --prefix integration/${{ matrix.suite }} install 
59-           npm --prefix integration/${{ matrix.suite }} install "file:/ ./$PKG_TARBALL " 
84+           npm --prefix integration/${{ matrix.suite }} install "./${{ needs.build.outputs.tarball-name }} " 
6085          npm --prefix integration/${{ matrix.suite }} test 
6186
6287
6388   integration-edge :
64-     needs : test 
89+     needs : [ test, build] 
6590    runs-on : ubuntu-latest 
6691
6792    env :
@@ -74,22 +99,23 @@ jobs:
7499
75100    steps :
76101      - uses : actions/checkout@v3 
102+       - uses : actions/download-artifact@v3 
103+         with :
104+           name : package-tarball 
77105      - name : Use Node.js ${{ matrix.node-version }} 
78106        uses : actions/setup-node@v3 
79107        with :
80108          node-version : ${{ matrix.node-version }} 
81109          cache : " npm" 
82-       #  Build a production tarball and run the integration tests against it.
83110      - run : | 
84111          test "${{ matrix.suite }}" = "cloudflare-worker" && echo "REPLICATE_API_TOKEN=${{ secrets.REPLICATE_API_TOKEN }}" > integration/${{ matrix.suite }}/.dev.vars 
85-           PKG_TARBALL=$(npm --loglevel error pack) 
86112          npm --prefix integration/${{ matrix.suite }} install 
87-           npm --prefix integration/${{ matrix.suite }} install "file:/ ./$PKG_TARBALL " 
113+           npm --prefix integration/${{ matrix.suite }} install "./${{ needs.build.outputs.tarball-name }} " 
88114          npm --prefix integration/${{ matrix.suite }} test 
89115
90116
91117   integration-bun :
92-     needs : test 
118+     needs : [ test, build] 
93119    runs-on : ubuntu-latest 
94120
95121    env :
@@ -98,23 +124,19 @@ jobs:
98124    strategy :
99125      matrix :
100126        bun-version : [1.0.11] 
101-         node-version : [20.x] 
102127        suite : [bun] 
103128
104129    steps :
105130      - uses : actions/checkout@v3 
106-       - name : Use Node.js ${{ matrix.node-version }} 
107-         uses : actions/setup-node@v3 
131+       - uses : actions/download-artifact@v3 
108132        with :
109-           node-version : ${{ matrix.node-version }} 
110-           cache : " npm" 
133+           name : package-tarball 
111134      - name : Use Bun ${{ matrix.bun-version }} 
112135        uses : oven-sh/setup-bun@v1 
113136        with :
114137          bun-version : ${{ matrix.bun-version }} 
115138      - run : | 
116-           PKG_TARBALL=$(npm --loglevel error pack) 
117139          cd integration/${{ matrix.suite }} 
118140          bun uninstall replicate 
119-           bun install "file:../../$PKG_TARBALL " 
141+           bun install "file:../../${{ needs.build.outputs.tarball-name }} " 
120142          bun test 
0 commit comments