From 1628c1502e173e5c2a7bc7554decca1f8e9ed227 Mon Sep 17 00:00:00 2001 From: Benji Grant Date: Fri, 9 Jun 2023 23:57:01 +1000 Subject: [PATCH] Setup actions to deploy frontend and run checks --- .github/workflows/check_api.yml | 23 +++++++++++++++ .github/workflows/check_frontend.yml | 42 +++++++++++++++++++++++++++ .github/workflows/deploy_frontend.yml | 37 +++++++++++------------ frontend/.gitignore | 2 ++ 4 files changed, 86 insertions(+), 18 deletions(-) create mode 100644 .github/workflows/check_api.yml create mode 100644 .github/workflows/check_frontend.yml diff --git a/.github/workflows/check_api.yml b/.github/workflows/check_api.yml new file mode 100644 index 0000000..69beb63 --- /dev/null +++ b/.github/workflows/check_api.yml @@ -0,0 +1,23 @@ +name: API Checks + +on: + pull_request: + paths: + - api/** + - .github/workflows/check_api.yml + +# Fail on warnings +env: + RUSTFLAGS: "-Dwarnings" + +jobs: + clippy: + runs-on: ubuntu-latest + + defaults: + run: + working-directory: api + + steps: + - uses: actions/checkout@v3 + - run: cargo clippy diff --git a/.github/workflows/check_frontend.yml b/.github/workflows/check_frontend.yml new file mode 100644 index 0000000..02c5938 --- /dev/null +++ b/.github/workflows/check_frontend.yml @@ -0,0 +1,42 @@ +name: Frontend Checks + +on: + pull_request: + paths: + - frontend/** + - .github/workflows/check_frontend.yml + +jobs: + lint: + runs-on: ubuntu-latest + + defaults: + run: + working-directory: frontend + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: 'yarn' + cache-dependency-path: '**/yarn.lock' + - run: yarn install --immutable + - run: yarn lint --max-warnings 0 + + typecheck: + runs-on: ubuntu-latest + + defaults: + run: + working-directory: frontend + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: 'yarn' + cache-dependency-path: '**/yarn.lock' + - run: yarn install --immutable + - run: yarn tsc diff --git a/.github/workflows/deploy_frontend.yml b/.github/workflows/deploy_frontend.yml index e495b49..242c757 100644 --- a/.github/workflows/deploy_frontend.yml +++ b/.github/workflows/deploy_frontend.yml @@ -2,36 +2,37 @@ name: Deploy Frontend on: push: - branches: ['main'] - paths: ['frontend/**'] + branches: + - main + paths: + - frontend/** + - .github/workflows/deploy_frontend.yml + +env: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} jobs: deploy: + name: Deploy to Vercel runs-on: ubuntu-latest defaults: run: working-directory: frontend - permissions: - contents: read - id-token: write - steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: 17 + node-version: 18 cache: yarn cache-dependency-path: '**/yarn.lock' - - run: yarn install --immutable - - run: yarn build - - id: auth - uses: google-github-actions/auth@v0 - with: - credentials_json: '${{ secrets.GCP_SA_KEY }}' - - id: deploy - uses: google-github-actions/deploy-appengine@v0 - with: - working_directory: frontend - version: v1 + - name: Install Vercel CLI + run: yarn global install vercel@latest + - name: Pull Vercel Environment Information + run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }} + - name: Build Project Artifacts + run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }} + - name: Deploy Project Artifacts to Vercel + run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }} diff --git a/frontend/.gitignore b/frontend/.gitignore index 00d0689..24927b9 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -4,5 +4,7 @@ dist yarn-debug.log* yarn-error.log* +tsconfig.tsbuildinfo .env +.vercel