Skip to content

fix: revert deleted client tests #57

fix: revert deleted client tests

fix: revert deleted client tests #57

Workflow file for this run

name: Deploy to AWS EC2
on:
push:
branches:
- main
- feat/ec2-deploy-finalize
workflow_dispatch:
jobs:
deploy:
runs-on: ubuntu-latest
env:
KEYCLOAK_USER: ${{ secrets.KEYCLOAK_USER }}
KEYCLOAK_PASSWORD: ${{ secrets.KEYCLOAK_PASSWORD }}
KEYCLOAK_ADMIN: ${{ secrets.KEYCLOAK_ADMIN }}
KEYCLOAK_ADMIN_PASSWORD: ${{ secrets.KEYCLOAK_ADMIN_PASSWORD }}
KEYCLOAK_FORMSAI_USER: ${{ secrets.KEYCLOAK_FORMSAI_USER }}
KEYCLOAK_FORMSAI_PASSWORD: ${{ secrets.KEYCLOAK_FORMSAI_PASSWORD }}
KEYCLOAK_MOCK_USER: ${{ secrets.KEYCLOAK_MOCK_USER }}
KEYCLOAK_MOCK_USER_PASSWORD: ${{ secrets.KEYCLOAK_MOCK_USER_PASSWORD }}
KEYCLOAK_MOCK_USER_EMAIL: ${{ secrets.KEYCLOAK_MOCK_USER_EMAIL }}
KEYCLOAK_MOCK_USER_FIRST_NAME: ${{ secrets.KEYCLOAK_MOCK_USER_FIRST_NAME }}
KEYCLOAK_MOCK_USER_LAST_NAME: ${{ secrets.KEYCLOAK_MOCK_USER_LAST_NAME }}
KC_DB_USERNAME: ${{ secrets.KC_DB_USERNAME }}
KC_DB_PASSWORD: ${{ secrets.KC_DB_PASSWORD }}
POSTGRES_USER: ${{ secrets.POSTGRES_USER }}
POSTGRES_PASSWORD: ${{ secrets.POSTGRES_PASSWORD }}
POSTGRES_URI: ${{ secrets.POSTGRES_URI }}
POSTGRES_DB: ${{ secrets.POSTGRES_DB }}
MONGO_INITDB_ROOT_USERNAME: ${{ secrets.MONGO_INITDB_ROOT_USERNAME }}
MONGO_INITDB_ROOT_PASSWORD: ${{ secrets.MONGO_INITDB_ROOT_PASSWORD }}
MONGO_INITDB_DATABASE: ${{ secrets.MONGO_INITDB_DATABASE }}
MONGO_USERNAME: ${{ secrets.MONGO_USERNAME }}
MONGO_PASSWORD: ${{ secrets.MONGO_PASSWORD }}
MONGO_DATABASE: ${{ secrets.MONGO_DATABASE }}
MONGO_URI: ${{ secrets.MONGO_URI }}
OPENUI_API_KEY: ${{ secrets.OPENUI_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
GHCR_USERNAME: ${{ secrets.GHCR_USERNAME }}
GHCR_EMAIL: ${{ secrets.GHCR_EMAIL }}
KUBECONFIG: ${{ secrets.KUBECONFIG }}
KEYCLOAK_MOCK_ADMIN: ${{ secrets.KEYCLOAK_MOCK_ADMIN }},
KEYCLOAK_MOCK_ADMIN_PASSWORD: ${{ secrets.KEYCLOAK_MOCK_ADMIN_PASSWORD }},
KEYCLOAK_MOCK_ADMIN_EMAIL: ${{ secrets.KEYCLOAK_MOCK_ADMIN_EMAIL }},
KEYCLOAK_MOCK_ADMIN_FIRST_NAME: ${{ secrets.KEYCLOAK_MOCK_ADMIN_FIRST_NAME }},
KEYCLOAK_MOCK_ADMIN_LAST_NAME: ${{ secrets.KEYCLOAK_MOCK_ADMIN_LAST_NAME }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
SSH_KEY_ANSIBLE: ${{ secrets.SSH_KEY_ANSIBLE }}
steps:
- name: Checkout repo
uses: actions/checkout@v3
# Test Java services
- name: Set up Java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '21'
- name: Set up OpenAPI config files
run: |
echo "Setting up OpenAPI config files..."
sh api/scripts/setup.sh
- name: Run services tests
run: |
cd services/user-service
mvn clean test
cd ../..
cd services/template-service
mvn clean test
cd ../..
cd services/form-service
mvn clean test
cd ../..
cd services/api-gateway-service
mvn clean test
cd ../..
# Test Python GenAI service
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Install GenAI dependencies
run: pip install -r services/GenAI/requirements.txt
- name: Run GenAI tests
run: pytest services/GenAI/test.py
# Test Angular web-client
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 20
- name: Install client dependencies
run: |
cd web-client
npm install
cd ..
- name: Run client tests
run: |
cd web-client
npm test
cd ..
# Terraform deployment
- name: Set up Terraform
uses: hashicorp/setup-terraform@v3
- name: Initialize Terraform
working-directory: ./infra/terraform
run: terraform init
- name: Add SSH keys
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_KEY_ANSIBLE }}" > ~/.ssh/devops
echo "${{ secrets.SSH_PUB_KEY_ANSIBLE }}" > ~/.ssh/devops.pub
chmod 600 ~/.ssh/devops
chmod 644 ~/.ssh/devops.pub
- name: Plan Terraform
working-directory: ./infra/terraform
run: terraform plan --out=tfplan
env:
TF_VAR_env_vars: >
{
"KEYCLOAK_USER": "${{ secrets.KEYCLOAK_USER }}",
"KEYCLOAK_PASSWORD": "${{ secrets.KEYCLOAK_PASSWORD }}",
"KEYCLOAK_ADMIN": "${{ secrets.KEYCLOAK_ADMIN }}",
"KEYCLOAK_ADMIN_PASSWORD": "${{ secrets.KEYCLOAK_ADMIN_PASSWORD }}",
"KEYCLOAK_FORMSAI_USER": "${{ secrets.KEYCLOAK_FORMSAI_USER }}",
"KEYCLOAK_FORMSAI_PASSWORD": "${{ secrets.KEYCLOAK_FORMSAI_PASSWORD }}",
"KEYCLOAK_MOCK_USER": "${{ secrets.KEYCLOAK_MOCK_USER }}",
"KEYCLOAK_MOCK_USER_PASSWORD": "${{ secrets.KEYCLOAK_MOCK_USER_PASSWORD }}",
"KEYCLOAK_MOCK_USER_EMAIL": "${{ secrets.KEYCLOAK_MOCK_USER_EMAIL }}",
"KEYCLOAK_MOCK_USER_FIRST_NAME": "${{ secrets.KEYCLOAK_MOCK_USER_FIRST_NAME }}",
"KEYCLOAK_MOCK_USER_LAST_NAME": "${{ secrets.KEYCLOAK_MOCK_USER_LAST_NAME }}",
"KC_DB_USERNAME": "${{ secrets.KC_DB_USERNAME }}",
"KC_DB_PASSWORD": "${{ secrets.KC_DB_PASSWORD }}",
"POSTGRES_USER": "${{ secrets.POSTGRES_USER }}",
"POSTGRES_PASSWORD": "${{ secrets.POSTGRES_PASSWORD }}",
"POSTGRES_URI": "${{ secrets.POSTGRES_URI }}",
"POSTGRES_DB": "${{ secrets.POSTGRES_DB }}",
"MONGO_INITDB_ROOT_USERNAME": "${{ secrets.MONGO_INITDB_ROOT_USERNAME }}",
"MONGO_INITDB_ROOT_PASSWORD": "${{ secrets.MONGO_INITDB_ROOT_PASSWORD }}",
"MONGO_INITDB_DATABASE": "${{ secrets.MONGO_INITDB_DATABASE }}",
"MONGO_USERNAME": "${{ secrets.MONGO_USERNAME }}",
"MONGO_PASSWORD": "${{ secrets.MONGO_PASSWORD }}",
"MONGO_DATABASE": "${{ secrets.MONGO_DATABASE }}",
"MONGO_URI": "${{ secrets.MONGO_URI }}",
"OPENUI_API_KEY": "${{ secrets.OPENUI_API_KEY }}",
"DEPLOYMENT": "docker",
"KEYCLOAK_MOCK_ADMIN": "${{ secrets.KEYCLOAK_MOCK_ADMIN }}",
"KEYCLOAK_MOCK_ADMIN_PASSWORD": "${{ secrets.KEYCLOAK_MOCK_ADMIN_PASSWORD }}",
"KEYCLOAK_MOCK_ADMIN_EMAIL": "${{ secrets.KEYCLOAK_MOCK_ADMIN_EMAIL }}",
"KEYCLOAK_MOCK_ADMIN_FIRST_NAME": "${{ secrets.KEYCLOAK_MOCK_ADMIN_FIRST_NAME }}",
"KEYCLOAK_MOCK_ADMIN_LAST_NAME": "${{ secrets.KEYCLOAK_MOCK_ADMIN_LAST_NAME }}"
}
- name: Apply Terraform
working-directory: ./infra/terraform
run: terraform apply tfplan
- name: Wait for EC2 to be reachable
run: sleep 120
- name: Set output as env var
run: echo "PUBLIC_IP=$(terraform output -raw public_ip)" >> $GITHUB_ENV
# Ansible deployment
- name: Set up Python for Ansible
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install Ansible
run: |
python -m pip install --upgrade pip
pip install ansible
- name: Run Ansible Playbook
timeout-minutes: 10
working-directory: ./infra/ansible
run: |
ansible-playbook -i "ec2-user@${{ env.PUBLIC_IP }}," \
playbook.yml \
--private-key ~/.ssh/devops
'