Skip to content

feat(infra): setup for trace infrastructure - fix pr #34 #37 (#38) #31

feat(infra): setup for trace infrastructure - fix pr #34 #37 (#38)

feat(infra): setup for trace infrastructure - fix pr #34 #37 (#38) #31

Workflow file for this run

name: Local Deployment
on:
push:
branches: main
jobs:
deploy:
runs-on: self-hosted
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Load dotenv from secret for Grafana Configuration
run: |
cat <<EOF > .env
# Sensitive configurations from GitHub Secrets
GF_SMTP_HOST = ${{ secrets.SMTP_HOST }}
GF_SMTP_USER = ${{ secrets.SMTP_USER }}
GF_SMTP_PASSWORD = ${{ secrets.SMTP_PASSWORD }}
GF_SMTP_FROM_ADDRESS = ${{ secrets.FROM_ADDRESS }}
MINIO_ROOT_USER = ${{ secrets.MINIO_ROOT_USER }}
MINIO_ROOT_PASSWORD = ${{ secrets.MINIO_ROOT_PASSWORD }}
EOF
- name: Check if Caddy containers are running
id: check-caddy-container
run: |
{
echo 'stdout<<EOF'
docker compose --profile caddy ps -q
echo EOF
} >> "$GITHUB_OUTPUT"
- name: when caddy container down, caddy up
if: steps.check-caddy-container.outputs.stdout == ''
run: |
docker compose --profile caddy up -d
- name: Run Docker Compose for Log (Loki, Minio, Grafana)
run: |
docker compose --profile log up -d
- name: Run Docker Compose Of Trace (Agent, Tempo, Grafana)
run: |
docker compose --profile trace up -d
- name: Run Docker Compose for Metric (Agent, Prometheus, Grafana)
run: |
docker compose --profile metric up -d
- name: Set Caddyfile Environment Variables
run: |
sed -i 's/{$AWS_REQ_IP}/${{secrets.AWS_REQ_IP}}/' ./Caddyfile
- name: Copy Caddyfile into Caddy Container
run: |
docker cp ./Caddyfile caddy:/etc/caddy/Caddyfile
- name: Gracefully reload Caddy
run: |
docker exec -w /etc/caddy caddy caddy reload