mirror of
https://github.com/netbox-community/netbox-docker.git
synced 2024-11-21 15:33:18 +01:00
Use Docker Build Cloud for releases
With QEMU the ARM64 builds are slow and not reliable. If we use the Docker Cloud builders we reduce the build times considerably. As a Docker OSS organisation we get 400 build minutes per month, which should be fine, because we already use checks if builds are really needed. The Docker Cloud also uses a cache that should reduce build times a little bit more.
This commit is contained in:
parent
f13a6bf5e4
commit
a24c19c503
33
.github/workflows/release.yml
vendored
33
.github/workflows/release.yml
vendored
@ -19,7 +19,7 @@ jobs:
|
||||
- ./build.sh feature
|
||||
- ./build.sh develop
|
||||
platform:
|
||||
- linux/amd64
|
||||
- linux/amd64,linux/arm64
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-latest
|
||||
name: Builds new NetBox Docker Images
|
||||
@ -35,19 +35,11 @@ jobs:
|
||||
name: Get Version of NetBox Docker
|
||||
run: echo "version=$(cat VERSION)" >>"$GITHUB_OUTPUT"
|
||||
shell: bash
|
||||
- id: qemu-setup
|
||||
name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
- id: buildx-setup
|
||||
name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
- id: docker-build
|
||||
name: Build the image with '${{ matrix.build_cmd }}'
|
||||
- id: check-build-needed
|
||||
name: Check if the build is needed for '${{ matrix.build_cmd }}'
|
||||
env:
|
||||
CHECK_ONLY: "true"
|
||||
run: ${{ matrix.build_cmd }}
|
||||
- id: test-image
|
||||
name: Test the image
|
||||
run: IMAGE="${FINAL_DOCKER_TAG}" ./test.sh
|
||||
if: steps.docker-build.outputs.skipped != 'true'
|
||||
# docker.io
|
||||
- id: docker-io-login
|
||||
name: Login to docker.io
|
||||
@ -56,7 +48,14 @@ jobs:
|
||||
registry: docker.io
|
||||
username: ${{ secrets.dockerhub_username }}
|
||||
password: ${{ secrets.dockerhub_password }}
|
||||
if: steps.docker-build.outputs.skipped != 'true'
|
||||
if: steps.check-build-needed.outputs.skipped != 'true'
|
||||
- id: buildx-setup
|
||||
name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
version: "lab:latest"
|
||||
driver: cloud
|
||||
endpoint: "netboxcommunity/netbox-default"
|
||||
# quay.io
|
||||
- id: quay-io-login
|
||||
name: Login to Quay.io
|
||||
@ -65,7 +64,7 @@ jobs:
|
||||
registry: quay.io
|
||||
username: ${{ secrets.quayio_username }}
|
||||
password: ${{ secrets.quayio_password }}
|
||||
if: steps.docker-build.outputs.skipped != 'true'
|
||||
if: steps.check-build-needed.outputs.skipped != 'true'
|
||||
# ghcr.io
|
||||
- id: ghcr-io-login
|
||||
name: Login to GitHub Container Registry
|
||||
@ -74,11 +73,11 @@ jobs:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.repository_owner }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
if: steps.docker-build.outputs.skipped != 'true'
|
||||
if: steps.check-build-needed.outputs.skipped != 'true'
|
||||
- id: build-and-push
|
||||
name: Push the image
|
||||
run: ${{ matrix.build_cmd }} --push
|
||||
if: steps.docker-build.outputs.skipped != 'true'
|
||||
if: steps.check-build-needed.outputs.skipped != 'true'
|
||||
env:
|
||||
BUILDX_PLATFORM: ${{ matrix.platform }}
|
||||
BUILDX_BUILDER_NAME: ${{ steps.buildx-setup.outputs.name }}
|
||||
|
7
build.sh
7
build.sh
@ -103,6 +103,8 @@ GH_ACTION If defined, special 'echo' statements are enabled that set the
|
||||
- FINAL_DOCKER_TAG: The final value of the DOCKER_TAG env variable
|
||||
${_GREEN}Default:${_CLEAR} undefined
|
||||
|
||||
CHECK_ONLY Only checks if the build is needed and sets the GH Action output.
|
||||
|
||||
${_BOLD}Examples:${_CLEAR}
|
||||
|
||||
${0} master
|
||||
@ -355,6 +357,11 @@ else
|
||||
fi
|
||||
gh_echo "::endgroup::"
|
||||
|
||||
if [ "${CHECK_ONLY}" = "true" ]; then
|
||||
echo "Only check if build needed was requested. Exiting"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
###
|
||||
# Build the image
|
||||
###
|
||||
|
Loading…
Reference in New Issue
Block a user