Files
enerport-web-app/.gitea/workflows/deploy.yml
Murat Özkorkmaz 3cc7a73a49
Some checks failed
Build, Push & Deploy Angular App / 🏗️ Build Docker Image (push) Failing after 41s
Build, Push & Deploy Angular App / ⬆️ Push Image to Gitea Registry (push) Has been skipped
Build, Push & Deploy Angular App / 🚀 Deploy to Remote Server (push) Has been skipped
CI Test
2025-10-17 17:06:47 +02:00

97 lines
3.5 KiB
YAML

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: ubuntu-latest
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: ubuntu-latest
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: ubuntu-latest
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
# deploy-prod:
# if: startsWith(github.ref, 'refs/tags/')
# deploy-staging:
# if: github.ref == 'refs/heads/dev'
# notify:
# name: 🔔 Notify Deployment Result
# runs-on: ubuntu-latest
# needs: [ deploy ]
# if: always()
# steps:
# - name: Send Discord Notification
# run: |
# STATUS=${{ job.status }}
# MESSAGE="🚀 *Angular-Web-App Deployment* (${{ github.ref_name }}) finished with status: **${STATUS}**"
# curl -H "Content-Type: application/json" \
# -X POST \
# -d "{\"content\": \"${MESSAGE}\"}" \
# ${{ secrets.DISCORD_WEBHOOK_URL }}