| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 0c9f156 commit 36fe80a
19 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,7 +1,7 @@ | |||
| 1 | 1 | #!/bin/bash | |
| 2 | 2 | ||
| 3 | - # Script to manually set secrets in Cloudflare Worker | ||
| 4 | - # Note: GitHub Actions automatically handles secrets via prefixed secrets (DEV_*, PROD_*) | ||
| 3 | + # Script to manually set secrets in Cloudflare Worker environment | ||
| 4 | + # Note: GitHub Actions automatically handles secrets in separate environment workers | ||
| 5 | 5 | # This script is for manual local secret management only | |
| 6 | 6 | ||
| 7 | 7 | # Environment to set secrets for (dev or prod) | |
@@ -13,11 +13,9 @@ if [ "$ENV" != "dev" ] && [ "$ENV" != "prod" ]; then | |||
| 13 | 13 | exit 1 | |
| 14 | 14 | fi | |
| 15 | 15 | ||
| 16 | - # Determine prefix based on environment | ||
| 17 | - PREFIX="${ENV^^}" # Convert to uppercase (dev -> DEV, prod -> PROD) | ||
| 18 | - WORKER_NAME="allthingslinux" | ||
| 16 | + WORKER_NAME="allthingslinux-${ENV}" | ||
| 19 | 17 | ||
| 20 | - echo "Setting ${PREFIX}_* prefixed secrets for worker: $WORKER_NAME" | ||
| 18 | + echo "Setting secrets for worker: $WORKER_NAME" | ||
| 21 | 19 | echo "Environment: $ENV" | |
| 22 | 20 | echo "" | |
| 23 | 21 | ||
@@ -49,54 +47,54 @@ fi | |||
| 49 | 47 | echo "✓ Authentication verified" | |
| 50 | 48 | echo "" | |
| 51 | 49 | ||
| 52 | - # Helper function to set a prefixed secret | ||
| 53 | - set_prefixed_secret() { | ||
| 54 | - local BASE_NAME=$1 | ||
| 50 | + # Helper function to set a secret | ||
| 51 | + set_secret() { | ||
| 52 | + local SECRET_NAME=$1 | ||
| 55 | 53 | local SECRET_VALUE=$2 | |
| 56 | - local PREFIXED_NAME="${PREFIX}_${BASE_NAME}" | ||
| 57 | - | ||
| 54 | + | ||
| 58 | 55 | if [ -z "$SECRET_VALUE" ]; then | |
| 59 | - echo "⚠ Skipping $PREFIXED_NAME (value not provided)" | ||
| 56 | + echo "⚠ Skipping $SECRET_NAME (value not provided)" | ||
| 60 | 57 | return 0 | |
| 61 | 58 | fi | |
| 62 | - | ||
| 63 | - echo "Setting $PREFIXED_NAME..." | ||
| 64 | - if echo "$SECRET_VALUE" | pnpm exec wrangler secret put "$PREFIXED_NAME"; then | ||
| 65 | - echo "✓ $PREFIXED_NAME set successfully" | ||
| 59 | + | ||
| 60 | + echo "Setting $SECRET_NAME..." | ||
| 61 | + if echo "$SECRET_VALUE" | pnpm exec wrangler secret put "$SECRET_NAME" --env "$ENV"; then | ||
| 62 | + echo "✓ $SECRET_NAME set successfully" | ||
| 66 | 63 | return 0 | |
| 67 | 64 | else | |
| 68 | - echo "✗ Failed to set $PREFIXED_NAME" | ||
| 65 | + echo "✗ Failed to set $SECRET_NAME" | ||
| 69 | 66 | return 1 | |
| 70 | 67 | fi | |
| 71 | 68 | } | |
| 72 | 69 | ||
| 73 | 70 | ERRORS=0 | |
| 74 | 71 | ||
| 75 | - # Set prefixed secrets (same pattern as GitHub Actions workflow) | ||
| 76 | - echo "Setting ${PREFIX}_* prefixed secrets..." | ||
| 72 | + # Set secrets (same pattern as GitHub Actions workflow) | ||
| 73 | + echo "Setting secrets..." | ||
| 77 | 74 | echo "" | |
| 78 | 75 | ||
| 79 | 76 | # Core secrets | |
| 80 | - set_prefixed_secret "QUICKBOOKS_CLIENT_ID" "${QUICKBOOKS_CLIENT_ID}" || ((ERRORS++)) | ||
| 81 | - set_prefixed_secret "QUICKBOOKS_CLIENT_SECRET" "${QUICKBOOKS_CLIENT_SECRET}" || ((ERRORS++)) | ||
| 82 | - set_prefixed_secret "QUICKBOOKS_REFRESH_TOKEN" "${QUICKBOOKS_REFRESH_TOKEN}" || ((ERRORS++)) | ||
| 83 | - set_prefixed_secret "QUICKBOOKS_REALM_ID" "${QUICKBOOKS_REALM_ID}" || ((ERRORS++)) | ||
| 84 | - set_prefixed_secret "QUICKBOOKS_ADMIN_KEY" "${QUICKBOOKS_ADMIN_KEY}" || ((ERRORS++)) | ||
| 85 | - set_prefixed_secret "GITHUB_TOKEN" "${GITHUB_TOKEN}" || ((ERRORS++)) | ||
| 86 | - set_prefixed_secret "MONDAY_API_KEY" "${MONDAY_API_KEY}" || ((ERRORS++)) | ||
| 77 | + set_secret "QUICKBOOKS_CLIENT_ID" "${QUICKBOOKS_CLIENT_ID}" || ((ERRORS++)) | ||
| 78 | + set_secret "QUICKBOOKS_CLIENT_SECRET" "${QUICKBOOKS_CLIENT_SECRET}" || ((ERRORS++)) | ||
| 79 | + set_secret "QUICKBOOKS_REFRESH_TOKEN" "${QUICKBOOKS_REFRESH_TOKEN}" || ((ERRORS++)) | ||
| 80 | + set_secret "QUICKBOOKS_REALM_ID" "${QUICKBOOKS_REALM_ID}" || ((ERRORS++)) | ||
| 81 | + set_secret "QUICKBOOKS_ADMIN_KEY" "${QUICKBOOKS_ADMIN_KEY}" || ((ERRORS++)) | ||
| 82 | + set_secret "GITHUB_TOKEN" "${GITHUB_TOKEN}" || ((ERRORS++)) | ||
| 83 | + set_secret "MONDAY_API_KEY" "${MONDAY_API_KEY}" || ((ERRORS++)) | ||
| 84 | + set_secret "TRIGGER_SECRET_KEY" "${TRIGGER_SECRET_KEY}" || ((ERRORS++)) | ||
| 87 | 85 | ||
| 88 | 86 | # Variables (non-sensitive) - note: these are set as secrets for consistency | |
| 89 | - set_prefixed_secret "MONDAY_BOARD_ID" "${MONDAY_BOARD_ID}" || ((ERRORS++)) | ||
| 90 | - set_prefixed_secret "DISCORD_WEBHOOK_URL" "${DISCORD_WEBHOOK_URL}" || ((ERRORS++)) | ||
| 87 | + set_secret "MONDAY_BOARD_ID" "${MONDAY_BOARD_ID}" || ((ERRORS++)) | ||
| 88 | + set_secret "DISCORD_WEBHOOK_URL" "${DISCORD_WEBHOOK_URL}" || ((ERRORS++)) | ||
| 91 | 89 | ||
| 92 | 90 | # QUICKBOOKS_ENVIRONMENT (optional, auto-detected if not set) | |
| 93 | 91 | if [ -n "$QUICKBOOKS_ENVIRONMENT" ]; then | |
| 94 | - set_prefixed_secret "QUICKBOOKS_ENVIRONMENT" "${QUICKBOOKS_ENVIRONMENT}" || ((ERRORS++)) | ||
| 92 | + set_secret "QUICKBOOKS_ENVIRONMENT" "${QUICKBOOKS_ENVIRONMENT}" || ((ERRORS++)) | ||
| 95 | 93 | fi | |
| 96 | 94 | ||
| 97 | 95 | echo "" | |
| 98 | 96 | if [ $ERRORS -eq 0 ]; then | |
| 99 | - echo "✓ All ${PREFIX}_* prefixed secrets set successfully" | ||
| 97 | + echo "✓ All secrets set successfully" | ||
| 100 | 98 | echo "" | |
| 101 | 99 | echo "Note: GitHub Actions automatically manages these secrets during CI/CD." | |
| 102 | 100 | echo "This manual script is mainly for local testing and initial setup." | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -60,20 +60,24 @@ jobs: | |||
| 60 | 60 | run: | | |
| 61 | 61 | ENV_NAME="${{ github.ref == 'refs/heads/main' && 'prod' || 'dev' }}" | |
| 62 | 62 | echo "🔐 Setting secrets for ${ENV_NAME} environment..." | |
| 63 | - # Deploy to separate workers - no need for prefix logic | ||
| 64 | - # Each environment worker has its own secrets | ||
| 65 | - pnpm exec wrangler secret put QUICKBOOKS_CLIENT_ID --env $ENV_NAME <<< "${{ secrets.QUICKBOOKS_CLIENT_ID }}" | ||
| 66 | - pnpm exec wrangler secret put QUICKBOOKS_CLIENT_SECRET --env $ENV_NAME <<< "${{ secrets.QUICKBOOKS_CLIENT_SECRET }}" | ||
| 67 | - pnpm exec wrangler secret put QUICKBOOKS_REFRESH_TOKEN --env $ENV_NAME <<< "${{ secrets.QUICKBOOKS_REFRESH_TOKEN }}" | ||
| 68 | - pnpm exec wrangler secret put QUICKBOOKS_REALM_ID --env $ENV_NAME <<< "${{ secrets.QUICKBOOKS_REALM_ID }}" | ||
| 69 | - pnpm exec wrangler secret put QUICKBOOKS_ADMIN_KEY --env $ENV_NAME <<< "${{ secrets.QUICKBOOKS_ADMIN_KEY }}" | ||
| 70 | - pnpm exec wrangler secret put GITHUB_TOKEN --env $ENV_NAME <<< "${{ secrets.GITHUB_TOKEN }}" | ||
| 71 | - pnpm exec wrangler secret put MONDAY_API_KEY --env $ENV_NAME <<< "${{ secrets.MONDAY_API_KEY }}" | ||
| 72 | - pnpm exec wrangler secret put MONDAY_BOARD_ID --env $ENV_NAME <<< "${{ vars.MONDAY_BOARD_ID }}" | ||
| 73 | - pnpm exec wrangler secret put DISCORD_WEBHOOK_URL --env $ENV_NAME <<< "${{ vars.DISCORD_WEBHOOK_URL }}" | ||
| 74 | - pnpm exec wrangler secret put QUICKBOOKS_ENVIRONMENT --env $ENV_NAME <<< "${{ vars.QUICKBOOKS_ENVIRONMENT }}" | ||
| 63 | + # Use the same secrets.sh script for consistency between manual and CI/CD | ||
| 64 | + chmod +x .github/scripts/secrets.sh | ||
| 65 | + .github/scripts/secrets.sh "$ENV_NAME" | ||
| 75 | 66 | env: | |
| 76 | 67 | CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
| 68 | + # Export all secrets as environment variables for the script | ||
| 69 | + QUICKBOOKS_CLIENT_ID: ${{ secrets.QUICKBOOKS_CLIENT_ID }} | ||
| 70 | + QUICKBOOKS_CLIENT_SECRET: ${{ secrets.QUICKBOOKS_CLIENT_SECRET }} | ||
| 71 | + QUICKBOOKS_REFRESH_TOKEN: ${{ secrets.QUICKBOOKS_REFRESH_TOKEN }} | ||
| 72 | + QUICKBOOKS_REALM_ID: ${{ secrets.QUICKBOOKS_REALM_ID }} | ||
| 73 | + QUICKBOOKS_ADMIN_KEY: ${{ secrets.QUICKBOOKS_ADMIN_KEY }} | ||
| 74 | + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| 75 | + MONDAY_API_KEY: ${{ secrets.MONDAY_API_KEY }} | ||
| 76 | + TRIGGER_SECRET_KEY: ${{ secrets.TRIGGER_SECRET_KEY }} | ||
| 77 | + # Variables (non-sensitive) | ||
| 78 | + MONDAY_BOARD_ID: ${{ vars.MONDAY_BOARD_ID }} | ||
| 79 | + DISCORD_WEBHOOK_URL: ${{ vars.DISCORD_WEBHOOK_URL }} | ||
| 80 | + QUICKBOOKS_ENVIRONMENT: ${{ vars.QUICKBOOKS_ENVIRONMENT }} | ||
| 77 | 81 | ||
| 78 | 82 | - name: Deploy to Cloudflare Workers | |
| 79 | 83 | run: | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -44,32 +44,32 @@ This document explains all available pnpm scripts in the project. | |||
| 44 | 44 | ## Deployment | |
| 45 | 45 | ||
| 46 | 46 | - `pnpm run deploy:dev` | |
| 47 | - Builds and deploys to the development environment. | ||
| 47 | + Builds and deploys to the development Cloudflare Worker (allthingslinux-dev) with separate R2/KV bindings. | ||
| 48 | 48 | ||
| 49 | 49 | - `pnpm run deploy:prod` | |
| 50 | - Builds and deploys to the production environment. | ||
| 50 | + Builds and deploys to the production Cloudflare Worker (allthingslinux-prod) with separate R2/KV bindings. | ||
| 51 | 51 | ||
| 52 | 52 | - `pnpm run deploy` | |
| 53 | 53 | Alias for production deployment - the default deploy command. | |
| 54 | 54 | ||
| 55 | 55 | ## Version Management | |
| 56 | 56 | ||
| 57 | 57 | - `pnpm run version:upload` | |
| 58 | - Creates a new version in Cloudflare Workers without deploying it immediately. | ||
| 58 | + Creates a new version in the development Cloudflare Worker without deploying it immediately. | ||
| 59 | 59 | ||
| 60 | 60 | - `pnpm run version:deploy` | |
| 61 | - Deploys the latest uploaded version to production. | ||
| 61 | + Deploys the latest uploaded version to the development Cloudflare Worker. | ||
| 62 | 62 | ||
| 63 | 63 | - `pnpm run version:list` | |
| 64 | - Lists all versions of the Cloudflare Worker with metadata. | ||
| 64 | + Lists all versions of the development Cloudflare Worker with metadata. | ||
| 65 | 65 | ||
| 66 | 66 | ## Secrets Management | |
| 67 | 67 | ||
| 68 | 68 | - `pnpm run secrets:dev` | |
| 69 | - Uploads secrets from `.env.secrets.dev` (sandbox credentials) to the development Cloudflare Worker environment. | ||
| 69 | + Uploads secrets from `.env.secrets.dev` to the development Cloudflare Worker (uses `.github/scripts/secrets.sh`). | ||
| 70 | 70 | ||
| 71 | 71 | - `pnpm run secrets:prod` | |
| 72 | - Uploads secrets from `.env.secrets.prod` (production credentials) to the production Cloudflare Worker environment. | ||
| 72 | + Uploads secrets from `.env.secrets.prod` to the production Cloudflare Worker (uses `.github/scripts/secrets.sh`). | ||
| 73 | 73 | ||
| 74 | 74 | ## Code Quality | |
| 75 | 75 | ||
@@ -99,6 +99,9 @@ This document explains all available pnpm scripts in the project. | |||
| 99 | 99 | - `pnpm run cf:typegen` | |
| 100 | 100 | Generates TypeScript types for Cloudflare Workers bindings and environment variables. | |
| 101 | 101 | ||
| 102 | + - `pnpm run test` | ||
| 103 | + Runs the test suite using Vitest with Cloudflare Workers testing capabilities. | ||
| 104 | + | ||
| 102 | 105 | - `pnpm run analyze:bundle` | |
| 103 | 106 | Provides guidance for bundle size analysis using ESBuild Bundle Analyzer on the built worker code. | |
| 104 | 107 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments