diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..59fcae5 --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,52 @@ +name: Build and Push Memory Service + +on: + push: + branches: + - main + +jobs: + build-and-push: + name: Build and Push Image + # Use 'rust' runner (not 'docker') + # Available runners in Forgejo: golang, rust, node + # rust runner provides: Rust 1.83-bookworm + Docker-in-Docker for image builds + runs-on: rust + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Get commit info + id: info + run: | + SHORT_SHA=$(git rev-parse --short HEAD) + COMMIT_MSG=$(git log -1 --pretty=%B | head -1) + echo "short_sha=${SHORT_SHA}" >> $GITHUB_OUTPUT + echo "commit_msg=${COMMIT_MSG}" >> $GITHUB_OUTPUT + echo "Building: ${SHORT_SHA} - ${COMMIT_MSG}" + + - name: Docker login + run: | + echo "${{ secrets.REGISTRY_PAT }}" | \ + docker login -u rock --password-stdin forgejo.riotpiao.com + + - name: Build image + run: | + docker build \ + --tag forgejo.riotpiao.com/rock/poimen-memory:${{ steps.info.outputs.short_sha }} \ + --tag forgejo.riotpiao.com/rock/poimen-memory:latest \ + . + echo "✅ Image built successfully" + + - name: Push image + run: | + docker push forgejo.riotpiao.com/rock/poimen-memory:${{ steps.info.outputs.short_sha }} + docker push forgejo.riotpiao.com/rock/poimen-memory:latest + echo "✅ Image pushed successfully" + echo "Image: forgejo.riotpiao.com/rock/poimen-memory:latest" + + - name: Cleanup + if: always() + run: | + docker logout forgejo.riotpiao.com || true + echo "✅ Cleanup complete"