Skip to content

🌑 Cloudflare Worker Nightly Reset #7

🌑 Cloudflare Worker Nightly Reset

🌑 Cloudflare Worker Nightly Reset #7

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