From 6614a7dca954cb512df4697b3b6e5cefae24386c Mon Sep 17 00:00:00 2001 From: Mirko Milovanovic Date: Sun, 9 Feb 2025 14:15:59 +0100 Subject: [PATCH 1/3] feat: add GitHub Actions workflow for building and pushing Docker images --- .github/workflows/main.yml | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..692a48b --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,43 @@ +name: Build and Push Docker Image + +on: + push: + branches: + - main + +env: + REGISTRY_URL: gitea.kobim.cloud + +jobs: + build: + runs-on: ubuntu-latest + #container: + #image: docker + #options: --privileged + + steps: + - name: Checkout repository + uses: actions/checkout@v4.2.2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3.4.0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3.9.0 + + - name: Log in to Docker registry + uses: docker/login-action@v3.3.0 + with: + registry: ${{ env.REGISTRY_URL }} + username: ${{ github.actor }} + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Build and push Docker image + uses: docker/build-push-action@v6.13.0 + with: + context: . + push: true + tags: ${{ env.REGISTRY_URL }}/${{ github.repository_owner }}/${{ github.event.repository.name }}:latest + platforms: | + linux/amd64 + linux/arm64 \ No newline at end of file -- 2.49.1 From 80adb79196e95a5b290e5b71cbe640302899baf4 Mon Sep 17 00:00:00 2001 From: Mirko Milovanovic Date: Sun, 9 Feb 2025 15:10:41 +0100 Subject: [PATCH 2/3] feat: add GitHub Actions workflow for building Docker images on feature PRs --- .github/workflows/feature-pr-build.yml | 29 ++++++++++++++++++++++++++ .github/workflows/main.yml | 4 ---- 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/feature-pr-build.yml diff --git a/.github/workflows/feature-pr-build.yml b/.github/workflows/feature-pr-build.yml new file mode 100644 index 0000000..c3ebea8 --- /dev/null +++ b/.github/workflows/feature-pr-build.yml @@ -0,0 +1,29 @@ +name: Build Docker Image for Feature PRs + +on: + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4.2.2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3.4.0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3.9.0 + + - name: Build Docker image + uses: docker/build-push-action@v6.13.0 + with: + context: . + tags: ${{ github.repository_owner }}/${{ github.event.repository.name }}:${{ github.event.pull_request.number }} + platforms: | + linux/amd64 + linux/arm64 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 692a48b..adb7b1d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,10 +11,6 @@ env: jobs: build: runs-on: ubuntu-latest - #container: - #image: docker - #options: --privileged - steps: - name: Checkout repository uses: actions/checkout@v4.2.2 -- 2.49.1 From 7d5b6b2e21401dd58c738a52f9547e6111f65db1 Mon Sep 17 00:00:00 2001 From: Mirko Milovanovic Date: Sun, 9 Feb 2025 15:57:50 +0100 Subject: [PATCH 3/3] feat: create reusable action for setting up Docker environment in workflows --- .../actions/setup-docker-environment/action.yml | 14 ++++++++++++++ .github/workflows/feature-pr-build.yml | 14 ++++++-------- .github/workflows/main.yml | 17 +++++++---------- 3 files changed, 27 insertions(+), 18 deletions(-) create mode 100644 .github/actions/setup-docker-environment/action.yml diff --git a/.github/actions/setup-docker-environment/action.yml b/.github/actions/setup-docker-environment/action.yml new file mode 100644 index 0000000..7cce6cf --- /dev/null +++ b/.github/actions/setup-docker-environment/action.yml @@ -0,0 +1,14 @@ +name: "Setup Docker Environment" +description: "Common steps for setting up Docker build environment (checkout, QEMU, and Buildx)" + +runs: + using: "composite" + steps: + - name: Checkout repository + uses: actions/checkout@v4.2.2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3.4.0 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3.9.0 diff --git a/.github/workflows/feature-pr-build.yml b/.github/workflows/feature-pr-build.yml index c3ebea8..e68eda6 100644 --- a/.github/workflows/feature-pr-build.yml +++ b/.github/workflows/feature-pr-build.yml @@ -1,4 +1,4 @@ -name: Build Docker Image for Feature PRs +name: Build Docker Image for Pull Request on: pull_request: @@ -10,19 +10,17 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v4.2.2 + - name: Checkout repository actions + uses: actions/checkout@v2 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3.4.0 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3.9.0 + - name: Setup Docker Environment + uses: ./.github/actions/setup-docker-environment - name: Build Docker image uses: docker/build-push-action@v6.13.0 with: context: . + push: false tags: ${{ github.repository_owner }}/${{ github.event.repository.name }}:${{ github.event.pull_request.number }} platforms: | linux/amd64 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index adb7b1d..5a7d451 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,22 +12,19 @@ jobs: build: runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v4.2.2 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3.4.0 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3.9.0 - + - name: Checkout repository actions + uses: actions/checkout@v2 + + - name: Setup Docker Environment + uses: ./.github/actions/setup-docker-environment + - name: Log in to Docker registry uses: docker/login-action@v3.3.0 with: registry: ${{ env.REGISTRY_URL }} username: ${{ github.actor }} password: ${{ secrets.REGISTRY_TOKEN }} - + - name: Build and push Docker image uses: docker/build-push-action@v6.13.0 with: -- 2.49.1