name: Build, Push and Deploy on: push: branches: ["main"] env: REGISTRY: git.pb1497.com IMAGE_NAME: pb/skyjo-be # Wir nutzen hier den internen Namen des DinD Containers für Docker-Befehle jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Checkout Code uses: https://data.forgejo.org/actions/checkout@v4 - name: Login to Forgejo Registry run: | # Erstelle ein "App-Passwort" in Forgejo unter Einstellungen -> Anwendungen echo "${{ secrets.FORGEJO_TOKEN }}" | docker login ${{ env.REGISTRY }} -u "${{ github.actor }}" --password-stdin - name: Build and Push Image run: | docker build -t ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest . docker push ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest deploy: needs: build-and-push runs-on: ubuntu-latest 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