Repository navigation
Expand file tree
/
Copy pathscreenmap-pr.yml
More file actions
73 lines (72 loc) · 2.92 KB
/
Copy pathscreenmap-pr.yml
File metadata and controls
73 lines (72 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# .github/workflows/screenmap-pr.yml — review what a PR changes on-screen
name: screenmap · PR changes
on:
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: screenmap-pr-${{ github.event.pull_request.number }}
cancel-in-progress: true
permissions:
contents: write # push bundles to the screenmaps branch (set publish: false to drop this)
pull-requests: write # sticky comment
actions: write # start the baseline workflow if no map exists yet
jobs:
changes:
runs-on: macos-26
timeout-minutes: 60
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 22
- uses: aleqsio/screenmap@v1
with:
mode: pr
agent_api_key: ${{ secrets.ANTHROPIC_API_KEY }} # optional — omit for deterministic-only
# agent_provider: claude # or codex | gemini | opencode — pass the matching key above
expo_token: ${{ secrets.EXPO_TOKEN }} # EAS builds/serves the dev client (or pass app_path instead)
# platform: ios # or android (then use runs-on: ubuntu-latest — a tenth of the macOS rate)
# project: apps/mobile
# publish: "false" # private repos that only want the artifact link
# ─── Both platforms in one map ────────────────────────────────────────────────
# iOS needs macOS and Android is only worth running on Linux, so they are two
# jobs whose bundles are folded together afterwards. Replace the job above with:
#
# jobs:
# ios:
# runs-on: macos-26
# steps:
# - uses: actions/checkout@v4
# with: { fetch-depth: 0 }
# - uses: actions/setup-node@v4
# with: { node-version: 22 }
# - uses: aleqsio/screenmap@v1
# id: map
# with:
# mode: pr
# platform: ios
# publish: "false" # publish once, after the merge
# expo_token: ${{ secrets.EXPO_TOKEN }}
# - uses: actions/upload-artifact@v4
# with: { name: screenmap-ios, path: "${{ steps.map.outputs.bundle }}" }
#
# android: # same, with platform: android on ubuntu-latest
# runs-on: ubuntu-latest
# ...
#
# merge:
# needs: [ios, android]
# runs-on: ubuntu-latest
# steps:
# - uses: actions/download-artifact@v4
# with: { path: bundles }
# - run: |
# npx --yes github:aleqsio/screenmap#v1 --help >/dev/null 2>&1 || true
# screenmap-ci merge \
# --inputs ios=bundles/screenmap-ios/*.scrmap,android=bundles/screenmap-android/*.scrmap \
# --out combined.scrmap
#
# The merged bundle opens in the viewer with an iOS / Android switcher, and every
# screen keeps its own per-platform capture status.