-
Notifications
You must be signed in to change notification settings - Fork 39
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Create a sub-action for duplicated task
- Loading branch information
Showing
6 changed files
with
231 additions
and
154 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
name: 'Print Wrangler Logs' | ||
description: 'Prints Wrangler logs files if exist' | ||
inputs: | ||
WORKERS_AI_API_KEY: | ||
description: 'The Workers AI API Key' | ||
required: true | ||
VECTORIZE_API_KEY: | ||
description: 'The Vectorize API Key' | ||
required: true | ||
BUCKET_ACCESS_KEY_ID: | ||
description: 'The Bucket Access Key ID' | ||
required: true | ||
GOOGLE_CLIENT_SECRET: | ||
description: 'The Google client secret' | ||
required: true | ||
JWT_SECRET: | ||
description: 'The JWT secret' | ||
required: true | ||
MAPBOX_ACCESS_TOKEN: | ||
description: 'The Mapbox access token' | ||
required: true | ||
OPENAI_API_KEY: | ||
description: 'The OpenAI API Key' | ||
required: true | ||
OPENWEATHER_KEY: | ||
description: 'The OpenWeather API Key' | ||
required: true | ||
SEND_GRID_API_KEY: | ||
description: 'The sendgrid API Key' | ||
required: true | ||
STMP_PASSWORD: | ||
description: 'The smtp password' | ||
required: true | ||
X_AMZ_SECURITY_TOKEN: | ||
description: 'The X-Amz-Security-Token' | ||
required: true | ||
JWT_VERIFICATION_KEY: | ||
description: 'The JWT verification key' | ||
required: true | ||
CLOUDFLARE_API_TOKEN: | ||
description: 'Cloudflare API Token' | ||
required: true | ||
CLOUDFLARE_ACCOUNT_ID: | ||
description: 'Cloudflare Account ID' | ||
required: true | ||
CLOUDFLARE_ENVIRONMENT: | ||
description: 'Cloudflare Environment' | ||
required: true | ||
type: choice | ||
options: | ||
- preview | ||
- production | ||
runs: | ||
using: 'composite' | ||
steps: | ||
- name: Migrate database | ||
uses: cloudflare/[email protected] | ||
with: | ||
wranglerVersion: '3.75.0' | ||
apiToken: ${{ inputs.CLOUDFLARE_API_TOKEN }} | ||
accountId: ${{ inputs.CLOUDFLARE_ACCOUNT_ID }} | ||
workingDirectory: server | ||
# INFO: We need to upload secret manually because the default secrets input of this action `cloudflare/[email protected]` use the `wrangler secret put` command to upload secrets but this command will do not work non-interactive context. | ||
preCommands: > | ||
echo '---Generate and upload secrets---' && | ||
echo '>> Generate secrets file' && | ||
echo '{}' | jq ' | ||
.BUCKET_ACCESS_KEY_ID="${{ inputs.BUCKET_ACCESS_KEY_ID }}" | | ||
.GOOGLE_CLIENT_SECRET="${{ inputs.GOOGLE_CLIENT_SECRET }}" | | ||
.JWT_SECRET="${{ inputs.JWT_SECRET }}" | | ||
.JWT_VERIFICATION_KEY="${{ inputs.JWT_VERIFICATION_KEY }}" | | ||
.MAPBOX_ACCESS_TOKEN="${{ inputs.MAPBOX_ACCESS_TOKEN }}" | | ||
.OPENAI_API_KEY="${{ inputs.OPENAI_API_KEY }}" | | ||
.OPENWEATHER_KEY="${{ inputs.OPENWEATHER_KEY }}" | | ||
.SEND_GRID_API_KEY="${{ inputs.SEND_GRID_API_KEY }}" | | ||
.STMP_PASSWORD="${{ inputs.STMP_PASSWORD }}" | | ||
.VECTORIZE_API_KEY="${{ inputs.VECTORIZE_API_KEY }}" | | ||
.WORKERS_AI_API_KEY="${{ inputs.WORKERS_AI_API_KEY }}" | | ||
.X_AMZ_SECURITY_TOKEN="${{ inputs.X_AMZ_SECURITY_TOKEN }}" | ||
' > secrets.json && | ||
echo '<< Secrets file generated' && | ||
echo '>> Upload secrets' && | ||
yarn wrangler secret bulk --env ${{ inputs.CLOUDFLARE_ENVIRONMENT }} secrets.json && | ||
echo '<< Secrets uploaded' | ||
command: deploy src/index.ts --env ${{ inputs.CLOUDFLARE_ENVIRONMENT }} | ||
packageManager: yarn | ||
env: | ||
CI: true | ||
NO_D1_WARNING: true | ||
WRANGLER_LOG: debug | ||
WRANGLER_LOG_SANITIZE: false | ||
|
||
- name: Print wrangler extra logs on failure | ||
if: failure() | ||
uses: ./.github/actions/print-wrangler-logs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
name: 'Print Wrangler Logs' | ||
description: 'Prints Wrangler logs files if exist' | ||
inputs: | ||
CLOUDFLARE_API_TOKEN: | ||
description: 'Cloudflare API Token' | ||
required: true | ||
CLOUDFLARE_ACCOUNT_ID: | ||
description: 'Cloudflare Account ID' | ||
required: true | ||
CLOUDFLARE_ENVIRONMENT: | ||
description: 'Cloudflare Environment' | ||
required: true | ||
type: choice | ||
options: | ||
- preview | ||
- production | ||
runs: | ||
using: 'composite' | ||
steps: | ||
- name: Migrate database | ||
uses: cloudflare/[email protected] | ||
with: | ||
wranglerVersion: '3.75.0' | ||
apiToken: ${{ inputs.CLOUDFLARE_API_TOKEN }} | ||
accountId: ${{ inputs.CLOUDFLARE_ACCOUNT_ID }} | ||
workingDirectory: server | ||
preCommands: | | ||
nl -w1 -s': ' wrangler.toml | ||
command: | | ||
d1 migrations apply ${{ inputs.CLOUDFLARE_ENVIRONMENT }} --remote --env ${{ inputs.CLOUDFLARE_ENVIRONMENT }} | ||
packageManager: yarn | ||
env: | ||
NO_D1_WARNING: true | ||
CI: true | ||
WRANGLER_LOG: debug | ||
WRANGLER_LOG_SANITIZE: false | ||
|
||
- name: Print wrangler extra logs on failure | ||
if: failure() | ||
uses: ./.github/actions/print-wrangler-logs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
name: 'Print Wrangler Logs' | ||
description: 'Prints Wrangler logs files if exist' | ||
runs: | ||
using: 'composite' | ||
steps: | ||
- name: Print the last wrangler log file | ||
shell: bash | ||
run: | | ||
cat "$(ls -t /home/runner/.config/.wrangler/logs/* 2> /dev/null | head -n 1)" 2> /dev/null || true; | ||
- name: Delete wrangler log files after printing | ||
shell: bash | ||
run: | | ||
rm /home/runner/.config/.wrangler/logs/* || true && |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -47,70 +47,27 @@ jobs: | |
VECTOR_INDEX_NAME: ${{ secrets.PREVIEW_VECTOR_INDEX || 'vector-index-preview' }} | ||
|
||
- name: Migrate database | ||
uses: cloudflare/[email protected] | ||
uses: ./.github/actions/migrate-d1-database | ||
with: | ||
wranglerVersion: '3.75.0' | ||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | ||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID}} | ||
workingDirectory: server | ||
preCommands: | | ||
echo '---Clear previous wrangler logs---' | ||
rm /home/runner/.config/.wrangler/logs/* || true | ||
command: d1 migrations apply preview --remote --env preview | ||
packageManager: yarn | ||
env: | ||
NO_D1_WARNING: true | ||
CI: true | ||
WRANGLER_LOG: debug | ||
WRANGLER_LOG_SANITIZE: false | ||
|
||
- name: Print wrangler extra logs on failure | ||
if: failure() | ||
run: | | ||
cat "$(ls -t /home/runner/.config/.wrangler/logs/* | head -n 1)" || true; | ||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} | ||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | ||
CLOUDFLARE_ENVIRONMENT: preview | ||
|
||
- name: Deploy | ||
uses: cloudflare/[email protected] | ||
with: | ||
wranglerVersion: '3.75.0' | ||
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | ||
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID}} | ||
workingDirectory: server | ||
# INFO: We need to upload secret manually because the default secrets input of this action `cloudflare/[email protected]` use the `wrangler secret put` command to upload secrets but this command will do not work non-interactive context. | ||
preCommands: > | ||
echo '---Clear previous wrangler logs file---' && | ||
rm /home/runner/.config/.wrangler/logs/* || true && | ||
echo '---Generate and upload secrets---' && | ||
echo '>> Generate secrets file' && | ||
echo '{}' | jq ' | ||
.WORKERS_AI_API_KEY="${{ secrets.PREVIEW_WORKERS_AI_API_KEY }}" | | ||
.VECTORIZE_API_KEY="${{ secrets.PREVIEW_VECTORIZE_API_KEY }}" | | ||
.BUCKET_ACCESS_KEY_ID="${{ secrets.PREVIEW_BUCKET_ACCESS_KEY_ID }}" | | ||
.GOOGLE_CLIENT_SECRET="${{ secrets.PREVIEW_GOOGLE_CLIENT_SECRET }}" | | ||
.JWT_SECRET="${{ secrets.PREVIEW_JWT_SECRET }}" | | ||
.MAPBOX_ACCESS_TOKEN="${{ secrets.PREVIEW_MAPBOX_ACCESS_TOKEN }}" | | ||
.OPENAI_API_KEY="${{ secrets.PREVIEW_OPENAI_API_KEY }}" | | ||
.OPENWEATHER_KEY="${{ secrets.PREVIEW_OPENWEATHER_KEY }}" | | ||
.SEND_GRID_API_KEY="${{ secrets.PREVIEW_SEND_GRID_API_KEY }}" | | ||
.STMP_PASSWORD="${{ secrets.PREVIEW_STMP_PASSWORD }}" | | ||
.VECTORIZE_API_KEY="${{ secrets.PREVIEW_VECTORIZE_API_KEY }}" | | ||
.X_AMZ_SECURITY_TOKEN="${{ secrets.PREVIEW_X_AMZ_SECURITY_TOKEN }}" | | ||
.JWT_VERIFICATION_KEY="${{ secrets.PREVIEW_JWT_SECRET }}" | ||
' > secrets.json && | ||
echo '<< Secrets file generated' && | ||
echo '>> Upload secrets' && | ||
yarn wrangler secret bulk --env preview secrets.json && | ||
echo '<< Secrets uploaded' | ||
command: deploy src/index.ts --env preview | ||
packageManager: yarn | ||
env: | ||
CI: true | ||
NO_D1_WARNING: true | ||
WRANGLER_LOG: debug | ||
WRANGLER_LOG_SANITIZE: false | ||
|
||
- name: Print wrangler extra logs on failure | ||
if: failure() | ||
run: | | ||
cat "$(ls -t /home/runner/.config/.wrangler/logs/* | head -n 1)" || true; | ||
BUCKET_ACCESS_KEY_ID: ${{ secrets.PREVIEW_BUCKET_ACCESS_KEY_ID }} | ||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} | ||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | ||
CLOUDFLARE_ENVIRONMENT: preview | ||
GOOGLE_CLIENT_SECRET: ${{ secrets.PREVIEW_GOOGLE_CLIENT_SECRET }} | ||
JWT_SECRET: ${{ secrets.PREVIEW_JWT_SECRET }} | ||
JWT_VERIFICATION_KEY: ${{ secrets.PREVIEW_JWT_SECRET }} | ||
MAPBOX_ACCESS_TOKEN: ${{ secrets.PREVIEW_MAPBOX_ACCESS_TOKEN }} | ||
OPENAI_API_KEY: ${{ secrets.PREVIEW_OPENAI_API_KEY }} | ||
OPENWEATHER_KEY: ${{ secrets.PREVIEW_OPENWEATHER_KEY }} | ||
SEND_GRID_API_KEY: ${{ secrets.PREVIEW_SEND_GRID_API_KEY }} | ||
STMP_PASSWORD: ${{ secrets.PREVIEW_STMP_PASSWORD }} | ||
VECTORIZE_API_KEY: ${{ secrets.PREVIEW_VECTORIZE_API_KEY }} | ||
WORKERS_AI_API_KEY: ${{ secrets.PREVIEW_WORKERS_AI_API_KEY }} | ||
X_AMZ_SECURITY_TOKEN: ${{ secrets.PREVIEW_X_AMZ_SECURITY_TOKEN }} |
Oops, something went wrong.