Release #228
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: Release | |
on: | |
workflow_dispatch: | |
inputs: | |
environment: | |
description: Environment to be released | |
required: true | |
default: default | |
type: choice | |
options: | |
- default | |
- tezos | |
- default-prod | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: mikefarah/[email protected] | |
- uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: eu-central-1 | |
- name: Fetch versions | |
run: | | |
ENVIRONMENT=${{ github.event.inputs.environment }} | |
echo "ENVIRONMENT TO BE RELEASE: ${ENVIRONMENT}" | |
BACKEND_RUNNING_VER=$(aws lambda get-alias --function-name AlgoreaBackend --name ${ENVIRONMENT} | yq .FunctionVersion) | |
FRONTEND_RUNNING_VER=$(aws lambda get-alias --function-name Algorea-static --name ${ENVIRONMENT} | yq .FunctionVersion) | |
BACKEND_DEPLID=$(yq '.backend.deployment_id' ./environments/${ENVIRONMENT}.yml) | |
FRONTEND_DEPLID=$(yq '.frontend.deployment_id' ./environments/${ENVIRONMENT}.yml) | |
BACKEND_ENV_VER=$(curl -L https://franceioi-algorea.s3.eu-west-3.amazonaws.com/deployments/backend-${ENVIRONMENT}-${BACKEND_DEPLID}.yml | yq '.lambda_version') | |
FRONTEND_ENV_VER=$(curl -L https://franceioi-algorea.s3.eu-west-3.amazonaws.com/deployments/frontend-${ENVIRONMENT}-${FRONTEND_DEPLID}.yml | yq '.lambda_version') | |
[ -z "${BACKEND_ENV_VER}" ] && echo "Backend: the expected deployment id (${ENVIRONMENT}-${BACKEND_DEPLID}) is not (yet) deployed" && exit 1 | |
[ -z "${FRONTEND_ENV_VER}" ] && echo "Frontend: the expected deployment id (${ENVIRONMENT}-${FRONTEND_DEPLID}) is not (yet) deployed" && exit 1 | |
echo "LAMBDA VERSIONS - Backend: ${BACKEND_RUNNING_VER} (wanted ${BACKEND_ENV_VER}) - Frontend ${FRONTEND_RUNNING_VER} (wanted ${FRONTEND_ENV_VER})" | |
echo "BACKEND_RUNNING_VER=${BACKEND_RUNNING_VER}" >> $GITHUB_ENV | |
echo "FRONTEND_RUNNING_VER=${FRONTEND_RUNNING_VER}" >> $GITHUB_ENV | |
echo "BACKEND_ENV_VER=${BACKEND_ENV_VER}" >> $GITHUB_ENV | |
echo "FRONTEND_ENV_VER=${FRONTEND_ENV_VER}" >> $GITHUB_ENV | |
- name: Migrate DB | |
if: ${{ env.BACKEND_RUNNING_VER != env.BACKEND_ENV_VER }} | |
run: | | |
PASS=${{ secrets.CONFIG_ENC_KEY }} make decrypt-config | |
BACKEND_APPVER=$(yq '.backend.version' ./environments/${{ github.event.inputs.environment }}.yml) | |
wget -qO- https://github.com/France-ioi/AlgoreaBackend/archive/refs/tags/v${BACKEND_APPVER}.tar.gz | tar -xz | |
cd AlgoreaBackend-${BACKEND_APPVER} | |
curl -L https://github.com/France-ioi/AlgoreaBackend/releases/download/v${BACKEND_APPVER}/AlgoreaBackend-linux --output ./AlgoreaBackend-linux | |
CONFIG_FILE=$(yq '.backend.config_file' ../environments/${{ github.event.inputs.environment }}.yml) | |
cp ../environments/configs/${CONFIG_FILE} conf/config.yaml | |
chmod +x ./AlgoreaBackend-linux | |
MIGRATION_SECRETS_FILE=$(yq '.backend.migration_secrets_file' ../environments/${{ github.event.inputs.environment }}.yml) | |
if [ ${MIGRATION_SECRETS_FILE} == "null" ]; then | |
echo "Migrating with default db user" | |
./AlgoreaBackend-linux db-migrate | |
else | |
MIGRATION_USER=$(yq '.db_migration_user' ../environments/configs/${MIGRATION_SECRETS_FILE}) | |
echo "Migrating with user ${MIGRATION_USER}" | |
MIGRATION_PASS=$(yq '.db_migration_pass' ../environments/configs/${MIGRATION_SECRETS_FILE}) | |
ALGOREA_DATABASE__USER=${MIGRATION_USER} ALGOREA_DATABASE__PASSWD=${MIGRATION_PASS} ./AlgoreaBackend-linux db-migrate | |
fi | |
- name: Release backend | |
if: ${{ env.BACKEND_RUNNING_VER != env.BACKEND_ENV_VER }} | |
run: aws lambda update-alias --function-name AlgoreaBackend --name ${{ github.event.inputs.environment }} --function-version ${{env.BACKEND_ENV_VER}} | |
- name: Release frontend | |
if: ${{ env.FRONTEND_RUNNING_VER != env.FRONTEND_ENV_VER }} | |
run: aws lambda update-alias --function-name Algorea-static --name ${{ github.event.inputs.environment }} --function-version ${{env.FRONTEND_ENV_VER}} |