Skip to content

fix: yarn mono repo with tailwindcss v4 #38

fix: yarn mono repo with tailwindcss v4

fix: yarn mono repo with tailwindcss v4 #38

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 }}