forked from sctg-development/vite-react-heroui-template
-
Notifications
You must be signed in to change notification settings - Fork 0
113 lines (102 loc) · 4.16 KB
/
deploy-cloudflare-worker.yaml
File metadata and controls
113 lines (102 loc) · 4.16 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
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
name: CloudflareWorkerDeploy
on:
push:
branches:
- main
paths:
- apps/cloudflare-worker/**
- yarn.lock
- .github/workflows/deploy-cloudflare-worker.yaml
workflow_dispatch:
permissions:
contents: write
pages: write
id-token: write
packages: write
attestations: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Cache Yarn dependencies
uses: actions/cache@v4
with:
path: |
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
node_modules
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Cache Turborepo
uses: actions/cache@v4
with:
path: .turbo
key: ${{ runner.os }}-turbo-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-
- name: Install dependencies
run: |
corepack enable
yarn install --immutable
- name: Create .env file
run: |
echo -n ${{ secrets.AUTH0_AUDIENCE }} | sed -n 's/http.:\/\/\(.*\)/DOMAIN_NAME=\1\n/p' > .env
echo "AUTHENTICATION_PROVIDER_TYPE=${{ secrets.AUTHENTICATION_PROVIDER_TYPE }}" >> .env
echo "AUTH0_DOMAIN=${{ secrets.AUTH0_DOMAIN }}" >> .env
echo "AUTH0_CLIENT_ID=${{ secrets.AUTH0_CLIENT_ID }}" >> .env
echo "AUTH0_SCOPE=\"${{ secrets.AUTH0_SCOPE }}\"" >> .env
echo "AUTH0_AUDIENCE=${{ secrets.AUTH0_AUDIENCE }}" >> .env
echo "API_BASE_URL=${{ secrets.API_BASE_URL }}" >> .env
echo "CORS_ORIGIN=${{ secrets.CORS_ORIGIN }}" >> .env
echo "READ_PERMISSION=${{ secrets.READ_PERMISSION }}" >> .env
echo "WRITE_PERMISSION=${{ secrets.WRITE_PERMISSION }}" >> .env
echo "ADMIN_PERMISSION=${{ secrets.ADMIN_PERMISSION }}" >> .env
- name: Replace "// vars.*" in wrangler.jsonc with a json string
run: |
cp .env apps/cloudflare-worker/.env
cd apps/cloudflare-worker
cp wrangler.jsonc wrangler.jsonc.bak
set -a && source .env && set +a
cat .env
cat wrangler.jsonc.bak | sed 's|// "vars".*.|,"vars": { "AUTHENTICATION_PROVIDER_TYPE": "'"${AUTHENTICATION_PROVIDER_TYPE}"'", "AUTH0_DOMAIN": "'"${AUTH0_DOMAIN}"'", "AUTH0_CLIENT_ID": "'"${AUTH0_CLIENT_ID}"'", "AUTH0_SCOPE": "'"${AUTH0_SCOPE}"'", "AUTH0_AUDIENCE": "'"${AUTH0_AUDIENCE}"'", "API_BASE_URL": "'"${API_BASE_URL}"'", "CORS_ORIGIN": "'"${CORS_ORIGIN}"'", "READ_PERMISSION": "'"${READ_PERMISSION}"'" }|' > wrangler.jsonc.2
cat wrangler.jsonc.2 | sed 's|// "routes".*.|,"routes": [{ "pattern": "'"${DOMAIN_NAME}"'", "custom_domain": true }]|' > wrangler.jsonc
cat wrangler.jsonc
- name: Deploy
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
workingDirectory: apps/cloudflare-worker
vars: |
AUTHENTICATION_PROVIDER_TYPE
AUTH0_DOMAIN
AUTH0_CLIENT_ID
AUTH0_SCOPE
AUTH0_AUDIENCE
API_BASE_URL
CORS_ORIGIN
READ_PERMISSION
WRITE_PERMISSION
ADMIN_PERMISSION
env:
AUTHENTICATION_PROVIDER_TYPE: ${{ secrets.AUTHENTICATION_PROVIDER_TYPE }}
AUTH0_DOMAIN: ${{ secrets.AUTH0_DOMAIN }}
AUTH0_CLIENT_ID: ${{ secrets.AUTH0_CLIENT_ID }}
AUTH0_SCOPE: ${{ secrets.AUTH0_SCOPE }}
AUTH0_AUDIENCE: ${{ secrets.AUTH0_AUDIENCE }}
API_BASE_URL: ${{ secrets.API_BASE_URL }}
CORS_ORIGIN: ${{ secrets.CORS_ORIGIN }}
READ_PERMISSION: ${{ secrets.READ_PERMISSION }}
WRITE_PERMISSION: ${{ secrets.WRITE_PERMISSION }}
ADMIN_PERMISSION: ${{ secrets.ADMIN_PERMISSION }}
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}