my-app-sandbox/.github/workflows/deploy.yml
bast 8a14b9edaf
Some checks failed
Build, Push and GitOps Deploy / test-and-deploy (push) Failing after 45s
.github/workflows/deploy.yml aktualisiert
2026-10-31 01:28:20 +00:00

50 lines
1.8 KiB
YAML

name: Build, Push and GitOps Deploy
on:
push:
branches: [ "main" ]
workflow_dispatch:
jobs:
test-and-deploy:
runs-on: ubuntu-latest
# HIER: Das offizielle, voll ausgestattete Image der Pipeline-Macher
container: catthehacker/ubuntu:act-latest
steps:
- name: Install Terraform
run: |
apt-get update && apt-get install -y wget gpg lsb-release
wget -O- https://hashicorp.com | gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://hashicorp.com $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/hashicorp.list
apt-get update && apt-get install -y terraform
- name: Checkout Code
uses: actions/checkout@v4
- name: Log in to Local Registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login forgejo:3000 -u ${{ github.actor }} --password-stdin
- name: Inject Version into Dockerfile
run: sed -i "s/{{APP_VERSION}}/${{ github.sha }}/g" Dockerfile
- name: Build App Image
run: |
docker build -t forgejo:3000/${{ github.repository }}:${{ github.sha }} .
docker build -t forgejo:3000/${{ github.repository }}:latest .
- name: Push App Image
run: |
docker push forgejo:3000/${{ github.repository }}:${{ github.sha }}
docker push forgejo:3000/${{ github.repository }}:latest
- name: Terraform Deploy
run: |
terraform init
terraform apply -auto-approve -var="app_version=${{ github.sha }}"
- name: Verify App Health
run: |
echo "Warte auf das Ingress-Routing..."
sleep 15
curl --fail --connect-timeout 5 http://local-k3s-platform:80/ || exit 1
echo "Erfolg: Die App läuft fehlerfrei nach dem Update!"