diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml new file mode 100644 index 0000000..72daa64 --- /dev/null +++ b/.forgejo/workflows/deploy.yml @@ -0,0 +1,52 @@ +name: Build, Push and Deploy +on: + push: + branches: ["main"] + +env: + REGISTRY: forgejo.git.pb1497.com + IMAGE_NAME: pb/skyjo-be + # Wir nutzen hier den internen Namen des DinD Containers für Docker-Befehle + DOCKER_HOST: tcp://docker-in-docker:2375 + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Login to Forgejo Registry + uses: actions/docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + # Erstelle ein "App-Passwort" in Forgejo unter Einstellungen -> Anwendungen + password: ${{ secrets.FORGEJO_TOKEN }} + + - name: Build and Push Image + uses: actions/docker/build-push-action@v5 + with: + context: . + push: true + tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + + deploy: + needs: build-and-push + runs-on: host + steps: + - name: Deploy Container + run: | + # Einloggen auf dem Host-Runner (falls nötig) + docker login ${{ env.REGISTRY }} -u ${{ github.actor }} -p ${{ secrets.FORGEJO_TOKEN }} + + # Altes Image ziehen und Container neu starten + docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest + + # Falls du ein docker-compose.yml im Repo hast: + # docker compose up -d --force-recreate + + # Oder einfacher Docker-Run (Beispiel): + docker stop skyjo-be || true + docker rm skyjo-be || true + docker run -d --name skyjo-be ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest