@@ -106,64 +106,77 @@ jobs:
106106 name : demo-app-4337-playwright-report
107107 path : examples/demo-app/playwright-report/
108108 retention-days : 3
109-
110- # e2e-nft-quest:
111- # runs-on: ubuntu-latest
112- # defaults:
113- # run:
114- # working-directory: ./
115- # steps:
116- # - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
117- # with:
118- # submodules: recursive
119-
120- # # Start node
121- # - name: Era Test Node Action
122- # uses: dutterbutter/era-test-node-action@36ffd2eefd46dc16e7e2a8e1715124400ec0a3ba # v1
123-
124- # - name: Setup pnpm
125- # uses: pnpm/action-setup@v4
126- # with:
127- # version: 9.11.0
128-
129- # - name: Use Node.js
130- # uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4
131- # with:
132- # node-version: lts/Iron
133- # cache: pnpm
134-
135- # # Install dependencies for repo
136- # - name: Install dependencies
137- # run: pnpm install -r --frozen-lockfile
138-
139- # # Install dependencies for the submodule
140- # - name: Install contract dependencies
141- # run: pnpm install -r --frozen-lockfile
142- # working-directory: packages/contracts
143-
144- # - name: Build contracts
145- # run: pnpm build
146- # working-directory: packages/contracts
147-
148- # - name: Deploy contracts
149- # run: pnpm run deploy --file ../auth-server/stores/local-node.json
150- # working-directory: packages/contracts
151-
152- # - name: Build SDK
153- # run: pnpm nx build sdk
154-
155- # - name: Deploy NFT contracts
156- # run: pnpm nx deploy:local nft-quest-contracts
157-
158- # # Run E2E tests
159- # - name: Install Playwright Chromium Browser
160- # run: pnpm exec playwright install chromium
161- # working-directory: examples/nft-quest
162- # - name: Run e2e tests
163- # run: pnpm nx e2e nft-quest
164- # - uses: actions/upload-artifact@v4
165- # if: ${{ !cancelled() }}
166- # with:
167- # name: nft-quest-playwright-report
168- # path: examples/nft-quest/playwright-report/
169- # retention-days: 3
109+
110+ e2e-nft-quest :
111+ runs-on : ubuntu-latest
112+ permissions :
113+ contents : read
114+ pull-requests : write
115+ defaults :
116+ run :
117+ working-directory : ./
118+ steps :
119+ - uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
120+ with :
121+ submodules : recursive
122+
123+ - name : Setup pnpm
124+ uses : pnpm/action-setup@v4
125+ with :
126+ version : 9.11.0
127+
128+ - name : Use Node.js
129+ uses : actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4
130+ with :
131+ node-version : lts/Iron
132+ cache : pnpm
133+
134+ - name : Setup Rust toolchain
135+ uses : dtolnay/rust-toolchain@stable
136+ with :
137+ toolchain : stable
138+ targets : wasm32-unknown-unknown
139+
140+ - name : Install wasm-pack
141+ run : curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
142+
143+ # Install foundry for Anvil
144+ - name : Install foundry
145+ uses : foundry-rs/foundry-toolchain@v1.5.0
146+
147+ # Start Anvil on port 8545 (chain-id 31337)
148+ - name : Start Anvil
149+ run : |
150+ anvil --host 0.0.0.0 &
151+ echo "Waiting for Anvil to be ready..."
152+ timeout 30 bash -c 'until cast client --rpc-url http://localhost:8545 > /dev/null 2>&1; do sleep 1; done'
153+ echo "Anvil is ready!"
154+
155+ # Install dependencies
156+ - name : Install dependencies
157+ run : pnpm install -r --frozen-lockfile
158+
159+ # Build web SDK (includes WASM)
160+ - name : Build web SDK
161+ run : pnpm nx build web-sdk
162+
163+ # Build sdk-4337
164+ - name : Build sdk-4337
165+ run : pnpm nx build sdk-4337
166+
167+ # Deploy NFT contract to Anvil
168+ - name : Deploy NFT contract
169+ run : pnpm nx deploy:anvil nft-quest-contracts
170+
171+ # Run E2E tests
172+ - name : Install Playwright Chromium Browser
173+ run : pnpm exec playwright install chromium
174+ working-directory : examples/nft-quest
175+ - name : Run e2e tests
176+ run : pnpm nx e2e nft-quest
177+ - uses : actions/upload-artifact@v4
178+ if : ${{ !cancelled() }}
179+ with :
180+ name : nft-quest-playwright-report
181+ path : examples/nft-quest/playwright-report/
182+ retention-days : 3
0 commit comments