generated from TBD54566975/tbd-project-template
-
Notifications
You must be signed in to change notification settings - Fork 7
80 lines (80 loc) · 2.65 KB
/
writecache.yml
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
74
75
76
77
78
79
80
on:
push:
branches:
- main
workflow_dispatch:
concurrency:
group: ${{ github.ref }}-writecache
cancel-in-progress: true
name: Write Cache
jobs:
write-cache:
name: Write Cache
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Init Hermit
uses: cashapp/[email protected]
- name: Install Hermit Packages
run: hermit install
- name: Docker Compose
run: docker compose up -d --wait
- name: Init DB
run: just init-db
- name: Rebuild All
run: just build-all
- name: Download Go Dependencies
run: go mod download -x
- name: Download pnpm dependencies
run: pnpm install
- name: Download playwright browsers
run: npx playwright install
- id: find-go-build-cache
shell: bash
run: echo "cache=$(go env GOCACHE)" >> "$GITHUB_OUTPUT"
- id: bin-hash
shell: bash
run: |
hash="$(find ./bin ! -type d | sort | xargs openssl sha256 | openssl sha256 -r | cut -d' ' -f1)"
echo "hash=$hash" >> "$GITHUB_OUTPUT"
- name: Save Hermit Cache
uses: actions/cache/save@v4
with:
path: ${{ runner.os == 'macOS' && '~/Library/Caches/hermit/pkg' || '~/.cache/hermit/pkg' }}
key: ${{ runner.os }}-hermit-cache-${{ steps.bin-hash.outputs.hash }}
- name: Save Go Module Cache
uses: actions/cache/save@v4
with:
path: |
~/go/pkg/mod
${{ steps.find-go-build-cache.outputs.cache }}
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
- name: Delete Maven Snapshots
id: maven-delete-snapshots
run: |
find ~/.m2/repository -type d -name "*SNAPSHOT" -exec rm -rf {} +
- name: Save Maven Modules Cache
id: cache-maven
uses: actions/cache/save@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
- name: Save pnpm Modules Cache
id: cache-pnpm
uses: actions/cache/save@v4
with:
path: |
~/.pnpm-store
node_modules
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Save Playwright Browser Cache
id: cache-playwright
uses: actions/cache/save@v4
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ hashFiles('**/pnpm-lock.yaml') }}
- name: Save Docker Images
uses: ScribeMD/[email protected]
with:
key: docker-${{ runner.os }}-${{ hashFiles('docker-compose.yml') }}