From 62050699f2cb4d13b9c34c4e933a1d3a19b4c3fe Mon Sep 17 00:00:00 2001 From: Pieter Hollander Date: Wed, 21 Feb 2024 11:23:27 +0100 Subject: [PATCH] Add container build workflow --- .gitea/workflows/docker.yml | 58 +++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .gitea/workflows/docker.yml diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml new file mode 100644 index 0000000..0a3cbda --- /dev/null +++ b/.gitea/workflows/docker.yml @@ -0,0 +1,58 @@ +name: Build Docker image +run-name: ${{ gitea.actor }} is building a new image 🚀 +on: + # schedule: + # - cron: "0 10 * * *" + push: + branches: + - "**" + tags: + - "v*.*.*" + pull_request: + branches: + - "main" + +jobs: + build: + runs-on: ubuntu-docker + steps: + - name: echo job info + run: echo "🎉 This job was automatically triggered by a ${{ gitea.event_name }} event and running on a ${{ runner.os }} repo:branch:${{ gitea.repository }}:${{ gitea.ref }}." + - name: Check out repository code + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Generate image tags + # https://docs.docker.com/build/ci/github-actions/manage-tags-labels/ + id: meta + uses: docker/metadata-action@v5 + with: + # list of Docker images to use as base name for tags + images: | + git.hollander.online/${{ gitea.repository_owner }}/${{ gitea.event.repository.name }} + # generate Docker tags based on the following events/attributes + tags: | + type=schedule + type=ref,event=branch + type=ref,event=pr + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha + - name: Login to registry + if: gitea.event_name != 'pull_request' + uses: docker/login-action@v3 + with: + registry: git.hollander.online + username: ${{ gitea.repository_owner }} + password: ${{ secrets.CI_PACKAGES_RW }} + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + push: ${{ gitea.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + platforms: linux/arm64,linux/amd64 + - name: Cleanup old images + run: docker system prune -f \ No newline at end of file