-
Notifications
You must be signed in to change notification settings - Fork 0
117 lines (94 loc) · 3.97 KB
/
build-client.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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
name: Build client
on:
push:
branches:
- main
jobs:
build_docker_image_track_base_client_builder:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Paths Changes Filter
uses: dorny/paths-filter@v2
id: changes
with:
filters: |
lock:
- 'web-client/Dockerfile.base-builder'
- name: Authenticate with GCP service account
if: steps.changes.outputs.lock == 'true'
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Set up Cloud SDK
if: steps.changes.outputs.lock == 'true'
uses: google-github-actions/setup-gcloud@v1
- name: Configure Docker to use Google Artifact Registry
if: steps.changes.outputs.lock == 'true'
run: gcloud auth configure-docker us-central1-docker.pkg.dev
- name: Build Base Builder Image
if: steps.changes.outputs.lock == 'true'
run: |
docker build -f web-client/Dockerfile.base-builder --target base-builder -t us-central1-docker.pkg.dev/hubs-dev-333333/ocho-osai/johnshaughnessy/track/track-client-base-builder .
docker push us-central1-docker.pkg.dev/hubs-dev-333333/ocho-osai/johnshaughnessy/track/track-client-base-builder
build_docker_image_track_client_builder:
runs-on: ubuntu-latest
needs: build_docker_image_track_base_client_builder
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Paths Changes Filter
uses: dorny/paths-filter@v2
id: changes
with:
filters: |
lock:
- 'web-client/Cargo.lock'
- 'web-client/Dockerfile.builder'
- 'web-client/Dockerfile.base-builder'
- name: Authenticate with GCP service account
if: steps.changes.outputs.lock == 'true'
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Set up Cloud SDK
if: steps.changes.outputs.lock == 'true'
uses: google-github-actions/setup-gcloud@v1
- name: Configure Docker to use Google Artifact Registry
if: steps.changes.outputs.lock == 'true'
run: gcloud auth configure-docker us-central1-docker.pkg.dev
- name: Build Base Builder Image
if: steps.changes.outputs.lock == 'true'
run: |
docker build -f web-client/Dockerfile.builder --target builder -t us-central1-docker.pkg.dev/hubs-dev-333333/ocho-osai/johnshaughnessy/track/track-client-builder .
docker push us-central1-docker.pkg.dev/hubs-dev-333333/ocho-osai/johnshaughnessy/track/track-client-builder
build_client:
runs-on: ubuntu-latest
needs: build_docker_image_track_client_builder
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Authenticate with GCP
uses: google-github-actions/auth@v1
with:
credentials_json: ${{ secrets.GCP_SA_KEY }}
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v1
- name: Configure Docker to use Google Artifact Registry
run: gcloud auth configure-docker us-central1-docker.pkg.dev
- name: Generate short SHA
run: echo "SHORT_SHA=${GITHUB_SHA:0:7}" >> $GITHUB_ENV
- name: Build web-client
run: |
docker run --rm -v $PWD:/track -w /track us-central1-docker.pkg.dev/hubs-dev-333333/ocho-osai/johnshaughnessy/track/track-client-builder sh -c "trunk build web-client/index.html"
- name: Build static files
run: |
ls -l web-client/dist
tar -czvf web-client.tar.gz -C web-client/dist .
mv web-client.tar.gz "web-client-${{ env.SHORT_SHA }}.tar.gz"
- name: Upload to GCS
uses: google-github-actions/upload-cloud-storage@v1
with:
path: "web-client-${{ env.SHORT_SHA }}.tar.gz"
destination: "ocho-osai/track/web-client-builds/"