name: Build and Push Docker Image on: push: branches: - main - test jobs: build-and-push: runs-on: self-hosted steps: - name: Checkout code uses: actions/checkout@v2 - name: Build Docker image run: | docker build -t "go-web-server:latest" . - name: Run temporary container for health check run: | docker run -d --name temp-go-web-server -p 54322:54321 go-web-server:latest sleep 10 # Wait for the container to start if curl -f http://localhost:54322/health; then echo "Health check passed" else echo "Health check failed" docker logs temp-go-web-server docker stop temp-go-web-server docker rm temp-go-web-server exit 1 fi # - name: Log in to GitHub Container Registry # uses: docker/login-action@v2 # with: # registry: ghcr.io # username: ${{ github.actor }} # password: ${{ secrets.CR_PAT }} # - name: Push Docker image to GitHub Container Registry # run: | # docker push "ghcr.io/jurajkubrican/knet/go-web-server:latest" # - name: Verify image is pushed # run: | # echo "Docker image pushed to: ghcr.io/jurajkubrican/knet/go-web-server:latest"