Update UniFi to v10.2.97 with Ubuntu 24.04, Java 21, MongoDB 7.0 #201
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Docker image | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| env: | |
| TEST_TAG: jacobalberty/unifi:test | |
| PKGURL: https://dl.ui.com/unifi/6.5.55/unifi_sysvinit_all.deb | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Prepare | |
| id: prep | |
| run: | | |
| DOCKER_IMAGE=jacobalberty/unifi | |
| VERSION=noop | |
| if [ "${{ github.event_name }}" = "schedule" ]; then | |
| VERSION=nightly | |
| elif [[ $GITHUB_REF == refs/tags/* ]]; then | |
| VERSION=${GITHUB_REF#refs/tags/} | |
| elif [[ $GITHUB_REF == refs/heads/* ]]; then | |
| VERSION=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's#/+#-#g') | |
| if [ "${{ github.event.repository.default_branch }}" = "$VERSION" ]; then | |
| VERSION=latest | |
| fi | |
| elif [[ $GITHUB_REF == refs/pull/* ]]; then | |
| VERSION=pr-${{ github.event.number }} | |
| fi | |
| TAGS="${DOCKER_IMAGE}:${VERSION}" | |
| if [[ $VERSION =~ ^v[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then | |
| MINOR=${VERSION%.*} | |
| MAJOR=${MINOR%.*} | |
| TAGS="$TAGS,${DOCKER_IMAGE}:${MINOR},${DOCKER_IMAGE}:${MAJOR}" | |
| elif [ "${{ github.event_name }}" = "push" ]; then | |
| TAGS="$TAGS,${DOCKER_IMAGE}:sha-${GITHUB_SHA::8}" | |
| fi | |
| echo ::set-output name=version::${VERSION} | |
| echo ::set-output name=tags::${TAGS} | |
| echo ::set-output name=created::$(date -u +'%Y-%m-%dT%H:%M:%SZ') | |
| - name: Setup QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Setup Docker buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build and export to Docker | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| load: true | |
| tags: ${{ env.TEST_TAG }} | |
| - name: Test image | |
| run: | | |
| export PKGURL=${{env.PKGURL}} && | |
| docker run -d --env PKGURL --rm --name unifitest ${{env.TEST_TAG}} && | |
| sleep 35 && | |
| for i in $(seq 1 10); do [ $(docker inspect --format='{{json .State.Health.Status}}' unifitest ) == \"healthy\" ] && break || sleep 35; done && | |
| [ $(docker inspect --format='{{json .State.Health.Status}}' unifitest ) == \"healthy\" ] && | |
| docker stop unifitest | |
| - name: Build Docker image | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: . | |
| platforms: linux/arm64/v8,linux/amd64 | |
| push: false | |
| load: false | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| tags: ${{ steps.prep.outputs.tags }} | |
| labels: | | |
| org.opencontainers.image.title=${{ github.event.repository.name }} | |
| org.opencontainers.image.description=${{ github.event.repository.description }} | |
| org.opencontainers.image.url=${{ github.event.repository.html_url }} | |
| org.opencontainers.image.source=${{ github.event.repository.clone_url }} | |
| org.opencontainers.image.version=${{ steps.prep.outputs.version }} | |
| org.opencontainers.image.created=${{ steps.prep.outputs.created }} | |
| org.opencontainers.image.revision=${{ github.sha }} | |
| org.opencontainers.image.licenses=${{ github.event.repository.license.spdx_id }} | |
| - name: Image digest | |
| run: echo ${{ steps.docker_build.outputs.digest }} |