Build (Cloud) #70
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Copyright (C) 2020 Really Awesome Technology Ltd | |
# | |
# This file is part of RACTF. | |
# | |
# RACTF is free software: you can redistribute it and/or modify | |
# it under the terms of the GNU Affero General Public License as published | |
# by the Free Software Foundation, either version 3 of the License, or | |
# (at your option) any later version. | |
# | |
# RACTF is distributed in the hope that it will be useful, | |
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
# GNU Affero General Public License for more details. | |
# | |
# You should have received a copy of the GNU Affero General Public License | |
# along with RACTF. If not, see <https:#www.gnu.org/licenses/>. | |
name: Build (Cloud) | |
on: | |
repository_dispatch: | |
types: [production_build_deploy] | |
workflow_dispatch: | |
inputs: | |
domain: | |
description: "The domain to deploy to" | |
required: true | |
apiDomain: | |
description: "The domain where the API is hosted" | |
required: true | |
theme: | |
description: "The theme for the site" | |
required: false | |
default: "RACTF" | |
name: | |
description: "The name for the site" | |
required: false | |
default: "RACTF" | |
ga: | |
description: "Google Analytics Token" | |
required: false | |
default: "UA-167342912-1" | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- uses: pnpm/action-setup@v2.0.1 | |
with: | |
version: 6.20.3 | |
- name: Use Node.js 14 | |
uses: actions/setup-node@v1 | |
with: | |
node-version: 14.x | |
cache: 'pnpm' | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile --shamefully-hoist | |
- name: Run Build | |
run: pnpm run build | |
env: | |
CI: "false" | |
RACTF_API_DOMAIN: https://${{ github.event.inputs.apiDomain }} | |
RACTF_API_BASE: /api/v2 | |
RACTF_WSS_URL: wss://${{ github.event.inputs.apiDomain }}/api/v2/ws/ | |
RACTF_SENTRY_DSN: https://b51135cca11047fe979c7b44cc35a404@o104250.ingest.sentry.io/1815863 | |
RACTF_GA_UA: ${{ github.event.inputs.ga }} | |
RACTF_UI_KIT_THEME: ${{ github.event.inputs.theme }} | |
RACTF_SITE_NAME: ${{ github.event.inputs.name }} | |
GENERATE_SOURCEMAP: true | |
- name: Install Sentry CLI | |
run: curl -sL https://sentry.io/get-cli/ | bash | |
- name: Publish Sentry Release | |
run: >- | |
VERSION=$(sentry-cli releases propose-version) && | |
sentry-cli releases new $VERSION && | |
sentry-cli releases set-commits --auto $VERSION && | |
sentry-cli releases files $VERSION upload-sourcemaps build && | |
sentry-cli releases finalize $VERSION | |
env: | |
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | |
SENTRY_ORG: ractf | |
SENTRY_PROJECT: frontend | |
- uses: jakejarvis/s3-sync-action@master | |
with: | |
args: --acl private --follow-symlinks | |
env: | |
AWS_S3_BUCKET: ${{ github.event.inputs.domain }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_REGION: 'eu-west-2' | |
SOURCE_DIR: 'build' |