Json schema for project definition #87
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
name: Deploy Cloud | |
on: | |
push: | |
branches: [ master ] | |
workflow_dispatch: | |
inputs: | |
environment: | |
type: choice | |
description: 'Environment' | |
required: true | |
default: 'staging' | |
options: | |
- production | |
- staging | |
lambdaRuntime: | |
type: choice | |
description: 'Lambda Runtime' | |
required: true | |
default: 'jvm' | |
options: | |
- jvm | |
- native | |
concurrency: | |
group: deploy-cloud-${{ github.event.inputs.environment || 'staging' }} | |
jobs: | |
build: | |
# Do not skip if this was dispatched explicitly | |
# For push to master: | |
# - Skip deploy if this is a release commit | |
# - Skip deploy if [skip deploy] is supplied | |
if: "github.event_name != 'push' || (!contains(github.event.head_commit.message, '[release]') && !contains(github.event.head_commit.message, '[skip deploy]'))" | |
runs-on: ubuntu-latest | |
steps: | |
# Common steps for all GH Actions | |
- uses: actions/checkout@v3 | |
- name: Setup Java | |
uses: graalvm/setup-graalvm@v1 | |
with: | |
java-version: '21' | |
distribution: 'graalvm-community' | |
cache: 'maven' | |
- uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.nvmrc' | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-maven- | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y wget scour ghostscript fuse | |
wget -nv -O /usr/local/bin/convert https://github.com/ImageMagick/ImageMagick/releases/download/7.1.1-26/ImageMagick--clang-x86_64.AppImage | |
chmod a+x /usr/local/bin/convert | |
convert -version | |
scour --version | |
# AWS credentials | |
- name: Add profile credentials to ~/.aws/credentials | |
run: | | |
aws configure set aws_access_key_id ${{ secrets.AWS_ACCESS_KEY_ID }} --profile dataspray | |
aws configure set aws_secret_access_key ${{ secrets.AWS_SECRET_ACCESS_KEY }} --profile dataspray | |
aws configure set region ${{ secrets.AWS_DEFAULT_REGION }} --profile dataspray | |
# Deploy Cloud | |
- name: Maven build | |
timeout-minutes: 60 | |
run: MAVEN_ARGS="--batch-mode" make action-deploy-cloud-${{ github.event.inputs.lambdaRuntime || 'jvm' }}-${{ github.event.inputs.environment || 'staging' }} |