Your music, beautifully tracked. All yours. (coming soon)
teal.fm
teal-fm
atproto
1# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
2
3name: Build Amethyst
4
5on:
6 push:
7 branches: [main]
8 paths:
9 - "apps/amethyst/**"
10 - "packages/**"
11 - "lexicons/**"
12 - "package.json"
13 - "pnpm-lock.yaml"
14 - ".github/workflows/amethyst.yml"
15 pull_request:
16 branches: [main]
17 paths:
18 - "apps/amethyst/**"
19 - "packages/**"
20 - "lexicons/**"
21 - "package.json"
22 - "pnpm-lock.yaml"
23 - ".github/workflows/amethyst.yml"
24
25jobs:
26 build:
27 name: Build Amethyst
28 runs-on: ubuntu-latest
29 outputs:
30 build-cache-key: ${{ steps.cache-key.outputs.key }}
31 steps:
32 - name: Checkout repository
33 uses: actions/checkout@v4
34
35 - name: Setup environment
36 uses: ./.github/actions/setup
37 with:
38 setup-node: "true"
39
40 - name: Generate cache key
41 id: cache-key
42 run: echo "key=amethyst-build-${{ hashFiles('apps/amethyst/**', 'packages/**', 'lexicons/**') }}" >> $GITHUB_OUTPUT
43
44 - name: Build lex tool
45 run: cd tools/lexicon-cli && pnpm i && pnpm build
46
47 - name: Build web
48 run: pnpm turbo build:web --filter=@teal/amethyst
49
50 - name: Type check
51 run: pnpm turbo check-types --filter=@teal/amethyst
52
53 - name: Run tests
54 run: pnpm turbo test --filter=@teal/amethyst
55
56 - name: Upload web build artifacts
57 uses: actions/upload-artifact@v4
58 with:
59 name: amethyst-web-build
60 path: apps/amethyst/build/
61 retention-days: 7
62
63 build-ios:
64 name: Build iOS
65 runs-on: macos-latest
66 needs: build
67 if: github.event_name == 'push' && github.ref == 'refs/heads/main'
68 steps:
69 - name: Checkout repository
70 uses: actions/checkout@v4
71
72 - name: Setup environment
73 uses: ./.github/actions/setup
74 with:
75 setup-node: "true"
76
77 - name: Build lex tool
78 run: cd tools/lexicon-cli && pnpm i && pnpm build
79
80 - name: Setup Expo CLI
81 run: npm install -g @expo/cli
82
83 - name: Build iOS
84 run: pnpm turbo build:ios --filter=@teal/amethyst
85
86 - name: Upload iOS build artifacts
87 uses: actions/upload-artifact@v4
88 with:
89 name: amethyst-ios-build
90 path: apps/amethyst/build/
91 retention-days: 7