Some checks failed
Build, Push and GitOps Deploy / test-and-deploy (push) Failing after 8s
52 lines
1.8 KiB
YAML
52 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
|
|
container: catthehacker/ubuntu:act-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Activate Included Terraform Binary
|
|
run: |
|
|
mv ./terraform /usr/local/bin/terraform 2>/dev/null || echo "Nutze vorhandenes File"
|
|
chmod +x /usr/local/bin/terraform
|
|
terraform --version
|
|
|
|
# KORRIGIERT: Spricht Forgejo direkt über den Containernamen an
|
|
- 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
|
|
|
|
# KORRIGIERT: Taggt das Image für den internen Containernamen
|
|
- name: Build App Image
|
|
run: |
|
|
docker build -t forgejo:3000/${{ github.repository }}:${{ github.sha }} .
|
|
docker build -t forgejo:3000/${{ github.repository }}:latest .
|
|
|
|
# KORRIGIERT: Pusht direkt über das interne Docker-Netzwerk
|
|
- 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!"
|