🌑 Cloudflare Worker Nightly Reset #7
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
# --------------------------------------------------------------------------------------- | |
# Cloudflare Worker › Nightly Reset | |
# Resets daily limits on cloudflare worker at midnight UTC daily. | |
# --------------------------------------------------------------------------------------- | |
run-name: "🌑 Cloudflare Worker Nightly Reset" | |
name: "☁️ Worker › Daily Reset" | |
on: | |
schedule: | |
# Reset nightly at midnight UTC, same time Cloudflare resets daily limits | |
- cron: '0 0 * * *' | |
workflow_dispatch: | |
jobs: | |
# --------------------------------------------------------------------------------------- | |
# JOB > RESET | |
# --------------------------------------------------------------------------------------- | |
job-dailyreset: | |
name: >- | |
🌑 Nightly Reset | |
runs-on: ubuntu-latest | |
outputs: | |
package_version: ${{ steps.task_dailyreset_package_getversion.outputs.PACKAGE_VERSION }} | |
permissions: | |
contents: write | |
packages: write | |
steps: | |
- name: "✅ Start" | |
id: task_dailyreset_start | |
run: | | |
echo "Starting nightly reset" | |
# --------------------------------------------------------------------------------------- | |
# Job > Initialize > Checkout | |
# --------------------------------------------------------------------------------------- | |
- name: "☑️ Checkout" | |
id: task_dailyreset_checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
# --------------------------------------------------------------------------------------- | |
# Get version from package.json VERSION value | |
# --------------------------------------------------------------------------------------- | |
- name: "👁️🗨️ Package Version › Set" | |
id: task_dailyreset_package_getversion | |
run: | | |
VER=$(cat src/package.json | jq -r '.version') | |
echo "PACKAGE_VERSION=$VER" >> $GITHUB_OUTPUT | |
# --------------------------------------------------------------------------------------- | |
# Show latest version being released from package.json | |
# --------------------------------------------------------------------------------------- | |
- name: "👁️🗨️ Package Version › Get" | |
id: task_dailyreset_package_getversion_debug | |
run: | | |
echo "VERSION: ${{ steps.task_dailyreset_package_getversion.outputs.PACKAGE_VERSION }}" | |
# --------------------------------------------------------------------------------------- | |
# CLOUDFLARE > NODE > SETUP | |
# --------------------------------------------------------------------------------------- | |
- name: "⚙️ Setup › Node" | |
id: task_cloudflare_node_setup | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20.x' | |
registry-url: https://npm.pkg.github.com/ | |
scope: '@aetherinox' | |
# --------------------------------------------------------------------------------------- | |
# CLOUDFLARE > NODE > INSTALL | |
# --------------------------------------------------------------------------------------- | |
- name: "📦 NPM › Install" | |
id: task_cloudflare_npm_install | |
run: | | |
npm install | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.SELF_TOKEN_CL }} | |
# --------------------------------------------------------------------------------------- | |
# Dist Releases > Run pretty and lint | |
# --------------------------------------------------------------------------------------- | |
- name: "🪪 NPM › Pretty" | |
id: task_cloudflare_npm_prettylint | |
run: | | |
npm run pretty | |
# --------------------------------------------------------------------------------------- | |
# Dist Releases > Print Version Debug | |
# --------------------------------------------------------------------------------------- | |
- name: "☁️ Cloudflare › Version" | |
id: task_cloudflare_version | |
run: | | |
echo "VERSION: ${{ env.PACKAGE_VERSION }}" | |
# --------------------------------------------------------------------------------------- | |
# CLOUDFLARE > SETUP | |
# --------------------------------------------------------------------------------------- | |
- name: "☁️ Cloudflare › Deploy" | |
id: task_cloudflare_deploy | |
uses: cloudflare/wrangler-action@v3 | |
with: | |
apiToken: ${{ secrets.CF_TOKEN }} | |
accountId: ${{ secrets.CF_ACCOUNT_ID }} | |
workingDirectory: "src" | |
command: deploy --minify | |
# --------------------------------------------------------------------------------------- | |
# JOB > PUBLISH > NPMJS | |
# --------------------------------------------------------------------------------------- | |
job-complete: | |
name: >- | |
🆗 Successful Deployment | |
needs: job-dailyreset | |
env: | |
PACKAGE_VERSION: ${{ needs.job-dailyreset.outputs.package_version }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: "🕛 Get Timestamp" | |
id: task_timestamp_get | |
run: | | |
echo "NOW=$(date +'%m-%d-%Y %H:%M:%S')" >> $GITHUB_ENV | |
# --------------------------------------------------------------------------------------- | |
# Summary of deployment | |
# --------------------------------------------------------------------------------------- | |
- name: "🆗 Deployment Successful: v${{ env.PACKAGE_VERSION }} @ ${{ env.NOW }}" | |
id: task_cloudflare_version | |
run: | | |
echo "Successfully deployed worker for nightly reset: v${{ env.PACKAGE_VERSION }} @ ${{ env.NOW }}" |