Skip to content

Merge pull request #2394 from goat-community/setup-map-libraries #260

Merge pull request #2394 from goat-community/setup-map-libraries

Merge pull request #2394 from goat-community/setup-map-libraries #260

Workflow file for this run

name: Push
on:
push:
branches: [ prod, dev, staging, v2 ]
jobs:
release:
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
FONTAWESOME_NPM_AUTH_TOKEN: ${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}
steps:
- uses: pnpm/action-setup@v2
with:
version: 8.6.0
- uses: actions/checkout@v2
- name: Get changed files
id: get_file_changes
uses: trilom/file-changes-action@v1.2.4
with:
output: ' '
- 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: Release changed client
if: contains(steps.get_file_changes.outputs.files, 'app/client-v2') || contains(github.event.head_commit.message, 'trigger build')
run: make release-client-docker-image -e COMPONENT=goat && make release-client-docker-image -e COMPONENT=storybook && make release-keycloak-theme
- name: Release changed docs
if: contains(steps.get_file_changes.outputs.files, 'docs') || contains(github.event.head_commit.message, 'trigger build')
run: make release-docs-docker-image -e COMPONENT=docs
- name: Release changed api
if: contains(steps.get_file_changes.outputs.files, 'app/api') || contains(github.event.head_commit.message, 'trigger build')
run: make release-docker-image -e COMPONENT=api
- name: Some check on branch
id: branch_check
run: |
echo "Running on branch ${{ github.ref }}"
if [ "${{ github.ref }}" = "refs/heads/prod" ]; then
echo "::set-output name=env_name::main"
elif [ "${{ github.ref }}" = "refs/heads/staging" ]; then
echo "::set-output name=env_name::staging"
elif [ "${{ github.ref }}" = "refs/heads/v2" ]; then
echo "::set-output name=env_name::v2"
else
echo "::set-output name=env_name::dev"
fi
- name: Use variable setup in previous step
run: echo "I'm using variable ${{ steps.branch_check.outputs.env_name }}"
outputs:
env_name: ${{ steps.branch_check.outputs.env_name }}
deploy:
runs-on: ubuntu-latest
environment:
name: ${{ needs.release.outputs.env_name }}
needs: [release]
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
KUBE_CONFIG: ${{ secrets.KUBE_CONFIG }}
POSTGRES_DB: ${{ secrets.POSTGRES_DB }}
POSTGRES_USER: ${{ secrets.POSTGRES_USER }}
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
POSTGRES_HOST: ${{ secrets.POSTGRES_HOST }}
R5_HOST: ${{ secrets.R5_HOST }}
R5_AUTHORIZATION: ${{ secrets.R5_AUTHORIZATION }}
API_SECRET_KEY: ${{ secrets.API_SECRET_KEY }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
EMAILS_FROM_EMAIL: ${{ secrets.EMAILS_FROM_EMAIL }}
FIRST_ORGANIZATION: ${{ secrets.FIRST_ORGANIZATION }}
FIRST_SUPERUSER_EMAIL: ${{ secrets.FIRST_SUPERUSER_EMAIL }}
FIRST_SUPERUSER_PASSWORD: ${{ secrets.FIRST_SUPERUSER_PASSWORD }}
FIRST_SUPERUSER_NAME: ${{ secrets.FIRST_SUPERUSER_NAME }}
FIRST_SUPERUSER_SURNAME: ${{ secrets.FIRST_SUPERUSER_SURNAME }}
SMTP_PASSWORD: ${{ secrets.SMTP_PASSWORD }}
BACKEND_CORS_ORIGIN: ${{ secrets.BACKEND_CORS_ORIGIN }}
RABBITMQ_DEFAULT_USER: ${{ secrets.RABBITMQ_DEFAULT_USER }}
RABBITMQ_DEFAULT_PASS: ${{ secrets.RABBITMQ_DEFAULT_PASS }}
CELERY_RESULT_EXPIRES: ${{ vars.CELERY_RESULT_EXPIRES }}
CELERY_TASK_TIME_LIMIT: ${{ vars.CELERY_TASK_TIME_LIMIT }}
API_REPLICAS: ${{ vars.API_REPLICAS }}
WORKER_REPLICAS: ${{ vars.WORKER_REPLICAS }}
WORKER_MEMORY_LIMIT: ${{ vars.WORKER_MEMORY_LIMIT }}
steps:
- uses: pnpm/action-setup@v2
with:
version: 8.6.1
- uses: actions/checkout@v2
- 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
- uses: azure/setup-kubectl@v2.0
with:
version: 'v1.23.6' # default is latest stable
id: install
- name: Get changed files
id: get_file_changes
uses: trilom/file-changes-action@v1.2.4
with:
output: ' '
- name: Deploy postgres-service
run: make deploy -e COMPONENT=postgres
- name: Deploy rabbitmq
run: make deploy -e COMPONENT=rabbitmq
- name: Deploy redis
run: make deploy -e COMPONENT=redis
- name: Deploy celery-flower
run: make deploy -e COMPONENT=celery-flower
- name: Deploy changed client
if: contains(steps.get_file_changes.outputs.files, 'app/client-v2') || contains(github.event.head_commit.message, 'trigger build')
run: make deploy -e COMPONENT=goat && make deploy -e COMPONENT=storybook
- name: Deploy changed docs
if: contains(steps.get_file_changes.outputs.files, 'docs') || contains(github.event.head_commit.message, 'trigger build')
run: make deploy -e COMPONENT=docs
- name: Deploy changed api
if: contains(steps.get_file_changes.outputs.files, 'app/api') || contains(github.event.head_commit.message, 'trigger build')
run: make deploy -e COMPONENT=api
- name: Deploy changed ingress
run : make deploy -e COMPONENT=ingress