Skip to content

Project Showcase Sync #2458

Project Showcase Sync

Project Showcase Sync #2458

name: Project Showcase Sync
on:
schedule:
- cron: "*/15 * * * *"
workflow_dispatch:
inputs:
mode:
description: "Sync mode"
required: true
type: choice
options:
- poll
- dispatch
default: poll
repository_dispatch:
types:
- showcase-review-submitted
jobs:
sync-showcase:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Run project showcase sync
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SHOWCASE_SYNC_MODE: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.mode || github.event_name == 'repository_dispatch' && 'dispatch' || 'poll' }}
GOOGLE_SERVICE_ACCOUNT_JSON: ${{ secrets.SHOWCASE_GOOGLE_SERVICE_ACCOUNT_JSON }}
GOOGLE_SHEET_ID: ${{ vars.SHOWCASE_GOOGLE_SHEET_ID }}
SUBMISSIONS_SHEET_NAME: ${{ vars.SHOWCASE_SUBMISSIONS_SHEET_NAME }}
SUBMISSIONS_SHEET_URL: ${{ vars.SHOWCASE_SUBMISSIONS_SHEET_URL }}
REVIEW_SHEET_NAME: ${{ vars.SHOWCASE_REVIEW_SHEET_NAME }}
TRANSFORMED_SHEET_NAME: ${{ vars.SHOWCASE_TRANSFORMED_SHEET_NAME }}
REVIEW_PROCESSED_COLUMN: ${{ vars.SHOWCASE_REVIEW_PROCESSED_COLUMN }}
APPROVAL_FORM_BASE_URL: ${{ vars.SHOWCASE_APPROVAL_FORM_BASE_URL }}
GITHUB_OWNER: ${{ vars.SHOWCASE_GITHUB_OWNER }}
GITHUB_REPO: ${{ vars.SHOWCASE_GITHUB_REPO }}
GITHUB_DATA_BRANCH: ${{ vars.SHOWCASE_GITHUB_DATA_BRANCH }}
GITHUB_ASSETS_BRANCH: ${{ vars.SHOWCASE_GITHUB_ASSETS_BRANCH }}
SHOWCASE_DATA_FILE_PATH: ${{ vars.SHOWCASE_DATA_FILE_PATH }}
SHOWCASE_ASSETS_BASE_PATH: ${{ vars.SHOWCASE_ASSETS_BASE_PATH }}
DISCORD_BOT_TOKEN: ${{ secrets.SHOWCASE_DISCORD_BOT_TOKEN }}
DISCORD_REVIEWER_USER_ID: ${{ vars.SHOWCASE_DISCORD_REVIEWER_USER_ID }}
DISCORD_API_BASE_URL: ${{ vars.SHOWCASE_DISCORD_API_BASE_URL }}
MAX_ROWS_PER_RUN: ${{ vars.SHOWCASE_MAX_ROWS_PER_RUN }}
run: node .github/scripts/project-showcase-sync.js