Skip to content

Deploy Github Pages #256

Deploy Github Pages

Deploy Github Pages #256

Workflow file for this run

name: Deploy Github Pages
on:
push:
branches:
- "master"
schedule:
# Runs at 3:27am every day of the month (1st *), in every month (2nd *) on Monday (1) to Friday (5)). https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html#tag_20_25_07
- cron: "27 3 * * *"
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: write
env:
REACT_APP_CLIENT_ID: ${{ secrets.REACT_APP_CLIENT_ID }}
REACT_APP_CLIENT_SECRET: ${{ secrets.REACT_APP_CLIENT_SECRET }}
REACT_APP_AUTH_CODE: ${{ secrets.REACT_APP_AUTH_CODE }}
REACT_APP_MAPBOX_TOKEN: ${{ secrets.REACT_APP_MAPBOX_TOKEN }}
jobs:
auth:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Cache node_modules
uses: actions/cache@v4
id: cache-node-modules
with:
path: node_modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/package.json') }}
- name: Cache auth
uses: actions/cache@v4
id: cache-auth
with:
path: credentials.json
key: ${{ runner.os }}-build-${{ env.cache-name }}
- name: Install
run: npm install
- name: Fetch auth
run: node scripts/get-auth
build:
runs-on: ubuntu-latest
needs: auth
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Cache node_modules
uses: actions/cache@v4
id: cache-node-modules
with:
path: node_modules
key: ${{ runner.os }}-modules-${{ hashFiles('**/package.json') }}
- name: Restore transformed runs
id: cache-runs-restore
uses: actions/cache/restore@v4
with:
path: public/data/activities/transformed
key: ${{ runner.os }}-runs-v2
restore-keys: |
${{ runner.os }}-runs
- name: Cache auth
uses: actions/cache@v4
id: cache-auth
with:
path: credentials.json
key: ${{ runner.os }}-build-${{ env.cache-name }}
- name: Install
run: npm install
- name: Fetch runs
run: node scripts/index
- name: Save transformed runs
id: cache-runs-save
uses: actions/cache/save@v4
with:
path: public/data/activities/transformed
key: ${{ steps.cache-runs-restore.outputs.cache-primary-key }}
- name: Build runs list
run: node scripts/list
- name: Build
run: npm run build
env:
PUBLIC_URL: ${{ vars.PUBLIC_URL }}
- name: Upload Build (artifact)
uses: actions/upload-artifact@v4
with:
name: build-artifact
path: build
retention-days: 1
- name: Store runs data
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: runs-data
path: public/data
retention-days: 1
- name: Store activity list
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: activity-list
path: src/data/activity_list.json
retention-days: 1
deploy:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Build (artifact)
uses: actions/download-artifact@v4
with:
name: build-artifact
path: build
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
clean: true
single-commit: true
folder: build