CI Test
Some checks failed
Build, Push & Deploy Angular App / 🏗️ Build Docker Image (push) Has been cancelled
Build, Push & Deploy Angular App / ⬆️ Push Image to Gitea Registry (push) Has been cancelled
Build, Push & Deploy Angular App / 🚀 Deploy to Remote Server (push) Has been cancelled

This commit is contained in:
Murat Özkorkmaz
2025-10-17 16:18:02 +02:00
parent 1077322477
commit 3bf68bfde0

View File

@@ -0,0 +1,76 @@
name: Build, Push & Deploy Angular App
on:
push:
branches:
- main
# Optional: führe auch bei Tag-Releases ein Deployment durch
tags:
- '*'
jobs:
build:
name: 🏗️ Build Docker Image
runs-on: docker
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Install Docker client
run: |
apk add --no-cache docker-cli bash
- name: Build Docker Image
run: |
chmod +x ./docker/build.sh
cd docker
./build.sh "${{ env.IMAGE_NAME }}" "${{ env.TAG }}"
env:
IMAGE_NAME: angular-web-app
TAG: ${{ github.ref_name == 'main' && 'latest' || github.ref_name }}
push:
name: ⬆️ Push Image to Gitea Registry
runs-on: docker
needs: build
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Push Image
run: |
apk add --no-cache bash docker-cli
cd docker
chmod +x ./push-to-gitea.sh
export GITEA_REGISTRY="${{ env.GITEA_REGISTRY }}"
export GITEA_USER="${{ secrets.CI_REGISTRY_USER }}"
export GITEA_TOKEN="${{ secrets.CI_REGISTRY_PASSWORD }}"
./push-to-gitea.sh "${{ env.IMAGE_NAME }}" "${{ env.TAG }}"
env:
IMAGE_NAME: angular-web-app
TAG: ${{ github.ref_name == 'main' && 'latest' || github.ref_name }}
GITEA_REGISTRY: gitea.moz-tech.de
deploy:
name: 🚀 Deploy to Remote Server
runs-on: docker
needs: push
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')
steps:
- name: Prepare environment
run: apk add --no-cache openssh-client docker-cli
- name: Deploy via SSH
run: |
echo "${{ secrets.DEPLOY_KEY }}" > /tmp/deploy_key.pem
chmod 600 /tmp/deploy_key.pem
ssh -i /tmp/deploy_key.pem -o StrictHostKeyChecking=no \
${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} <<'EOF'
docker login gitea.moz-tech.de -u "${{ secrets.CI_REGISTRY_USER }}" -p "${{ secrets.CI_REGISTRY_PASSWORD }}"
docker pull gitea.moz-tech.de/${{ secrets.CI_REGISTRY_USER }}/angular-web-app:latest
docker stop angular-web-app || true
docker rm angular-web-app || true
docker run -d --name angular-web-app -p 80:80 gitea.moz-tech.de/${{ secrets.CI_REGISTRY_USER }}/angular-web-app:latest
EOF