Skip to content

Build (Cloud)

Build (Cloud) #64

Workflow file for this run

# 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/[email protected]
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://[email protected]/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'