From 29fc5fb351e309bdc60929715587c9ec7a2e17f9 Mon Sep 17 00:00:00 2001 From: stonezdj Date: Thu, 11 Jun 2026 13:18:33 +0800 Subject: [PATCH 1/2] multi arch buildx Signed-off-by: stonezdj --- .github/workflows/build_base_test.yaml | 50 ++++++++++++++++++++++++++ .github/workflows/multiarch_build.yaml | 9 ----- multi_arch/Dockerfile | 9 +++++ 3 files changed, 59 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/build_base_test.yaml create mode 100644 multi_arch/Dockerfile diff --git a/.github/workflows/build_base_test.yaml b/.github/workflows/build_base_test.yaml new file mode 100644 index 0000000..429c23d --- /dev/null +++ b/.github/workflows/build_base_test.yaml @@ -0,0 +1,50 @@ +name: Build Base Test + +on: + push: + branches: + - main + - release-* + pull_request: + branches: + - main + workflow_dispatch: + +jobs: + BUILD_BASE_IMAGE: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@v6 + + - uses: jitterbit/get-changed-files@v1 + id: changed-files + continue-on-error: true + with: + format: space-delimited + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up QEMU + if: steps.decide.outputs.build_base == 'true' + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + if: steps.decide.outputs.build_base == 'true' + uses: docker/setup-buildx-action@v3 + + - name: Build and push firstfloor/photon:5.0 multi-arch manifest + if: steps.decide.outputs.build_base == 'true' + run: | + set -x + if [ -n "${{ secrets.DOCKERHUB_USERNAME }}" ] && [ -n "${{ secrets.DOCKERHUB_TOKEN }}" ]; then + echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ secrets.DOCKERHUB_USERNAME }}" --password-stdin + docker buildx build --platform linux/amd64,linux/arm64 \ + -f multi_arch/Dockerfile -t firstfloor/photon:5.0 --push . + docker logout + else + echo "Secrets not available, building without push" + docker buildx build --platform linux/amd64,linux/arm64 \ + -f multi_arch/Dockerfile -t firstfloor/photon:5.0 . + fi + diff --git a/.github/workflows/multiarch_build.yaml b/.github/workflows/multiarch_build.yaml index 0adbadc..b7aed00 100644 --- a/.github/workflows/multiarch_build.yaml +++ b/.github/workflows/multiarch_build.yaml @@ -44,15 +44,6 @@ jobs: echo "Building for OS: linux, Arch: ${{ matrix.arch }} on Native Runner: ${{ matrix.runner }}" go build -v -o ldaputils-${{ matrix.arch }} - - name: Run Tests - env: - GOOS: linux - GOARCH: ${{ matrix.arch }} - CGO_ENABLED: 0 - run: | - echo "Running tests natively on ${{ matrix.arch }}" - go test -v ./... - # Upload the compiled binary as a workflow artifact - name: Upload Binary Artifact uses: actions/upload-artifact@v4 diff --git a/multi_arch/Dockerfile b/multi_arch/Dockerfile new file mode 100644 index 0000000..e4d3f58 --- /dev/null +++ b/multi_arch/Dockerfile @@ -0,0 +1,9 @@ +FROM photon:5.0 + +RUN tdnf install photon-repos -y \ + && sed -i 's/enabled\s*=.*/enabled=0/g' /etc/yum.repos.d/*.repo \ + && sed -i 's/enabled\s*=.*/enabled=1/g' /etc/yum.repos.d/photon-snapshot.repo \ + && tdnf clean all \ + && tdnf --disablerepo="*" --enablerepo="photon-snapshot" makecache \ + && tdnf --disablerepo="*" --enablerepo="photon-snapshot" update -y \ + && tdnf clean all From b0f13e653cb94cf5ceb5ea9e23ceda9ee8c5ee7e Mon Sep 17 00:00:00 2001 From: stonezdj Date: Thu, 11 Jun 2026 13:19:20 +0800 Subject: [PATCH 2/2] Remove conditions Signed-off-by: stonezdj --- .github/workflows/build_base_test.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/build_base_test.yaml b/.github/workflows/build_base_test.yaml index 429c23d..e99c313 100644 --- a/.github/workflows/build_base_test.yaml +++ b/.github/workflows/build_base_test.yaml @@ -26,15 +26,12 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} - name: Set up QEMU - if: steps.decide.outputs.build_base == 'true' uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - if: steps.decide.outputs.build_base == 'true' uses: docker/setup-buildx-action@v3 - name: Build and push firstfloor/photon:5.0 multi-arch manifest - if: steps.decide.outputs.build_base == 'true' run: | set -x if [ -n "${{ secrets.DOCKERHUB_USERNAME }}" ] && [ -n "${{ secrets.DOCKERHUB_TOKEN }}" ]; then