From b65690ef1b855769bd0d3cfd6f0ae958ef0b12af Mon Sep 17 00:00:00 2001 From: Logan Cusano Date: Wed, 19 Nov 2025 03:47:06 -0500 Subject: [PATCH] Add build --- .gitea/workflows/build-container-image.yml | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 .gitea/workflows/build-container-image.yml diff --git a/.gitea/workflows/build-container-image.yml b/.gitea/workflows/build-container-image.yml new file mode 100644 index 0000000..ef8b1ba --- /dev/null +++ b/.gitea/workflows/build-container-image.yml @@ -0,0 +1,69 @@ +name: Docker Build & Push + +# Trigger the workflow on pushes to the main branch +on: + push: + branches: + - master + tags: + - 'v*' # Also run on tags starting with 'v' (e.g., v1.0.0) + +jobs: + build-and-publish: + # Use a standard Linux runner + runs-on: ubuntu-latest + + # Define variables for easy configuration + env: + # Replace 'gitea.local:3000' with your actual Gitea host and port (if non-standard) + REGISTRY: git.vpn.cusano.net + # Image name will be the Gitea repository path (e.g., username/repo-name) + IMAGE_NAME: ${{ gitea.repository }} + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + # Set up QEMU for multi-architecture building (optional, but highly recommended) + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + # Set up Docker Buildx (required for multi-platform and robust builds) + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to the Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + # Use your Gitea username for the login + username: ${{ gitea.actor }} + # Use a Personal Access Token (PAT) stored as a Gitea Action secret + # You MUST create a GITEA_TOKEN secret with 'write:packages' scope. + password: ${{ secrets.BUILD_TOKEN }} + + # Define image tags based on branch/tag information + - name: Determine Image Tags + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=sha,prefix=,suffix=,enable=true,params=7 + type=ref,event=branch + type=semver,pattern=v{{version}} + + # Build and Push the Docker image + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + # Enable pushing to the registry + push: true + # Select platforms to build for (e.g., standard Linux amd64) + platforms: linux/amd64, linux/arm64 + # Use the tags generated in the previous step + tags: ${{ steps.meta.outputs.tags }} + # Use the Dockerfile in the current directory (default: Dockerfile) + file: ./Dockerfile + # Set the build context + context: . \ No newline at end of file