Skip to content

Schwab Token Auto Refresher #66

Schwab Token Auto Refresher

Schwab Token Auto Refresher #66

Workflow file for this run

name: Schwab Token Auto Refresher
on:
schedule:
- cron: '0 13 */3 * *'
workflow_dispatch:
permissions:
contents: write
jobs:
refresh-token:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
- name: Install Google Chrome & Dependencies
run: |
sudo apt-get update
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install -y ./google-chrome-stable_current_amd64.deb
npm install
- name: Run Refresh Script
run: npm start
env:
GCP_SA_KEY: ${{ secrets.GCP_SA_KEY }}
SCHWAB_PROXY_URL: ${{ secrets.SCHWAB_PROXY_URL }}
SCHWAB_USERNAME: ${{ secrets.SCHWAB_USERNAME }}
SCHWAB_PASSWORD: ${{ secrets.SCHWAB_PASSWORD }}
SCHWAB_TOTP_SECRET: ${{ secrets.SCHWAB_TOTP_SECRET }}
SCHWAB_API_KEY: ${{ secrets.SCHWAB_API_KEY }}
SCHWAB_APP_SECRET: ${{ secrets.SCHWAB_APP_SECRET }}
GCP_PROJECT_ID: ${{ vars.GCP_PROJECT_ID }}
GCP_SECRET_ID: ${{ vars.GCP_SECRET_ID }}
SCHWAB_REDIRECT_URI: ${{ vars.SCHWAB_REDIRECT_URI }}
- name: Upload Error Screenshot
if: failure()
uses: actions/upload-artifact@v7
with:
name: debug-screenshots
path: '*.png'
retention-days: 3
- name: Update Log (Bash Version)
if: success()
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
echo "Last successful refresh: $(date '+%Y-%m-%d %H:%M:%S')" > last_run.txt
git checkout -B logs
git add last_run.txt
git commit -m "chore: update token refresh log [skip ci]"
git push "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git" logs --force