diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 6d743677..fc705704 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -154,132 +154,12 @@ jobs: --push \ . - build-armv7: - runs-on: ubuntu-22.04 - needs: translate - strategy: - fail-fast: false - max-parallel: 3 - matrix: - variant: [mongodb, postgresql, mariadb, all, slim] - name: Build Docker Image (armv7-${{ matrix.variant }}) - steps: - - name: Download repo artifact - uses: actions/download-artifact@v5 - with: - name: repo-with-translations - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - with: - cache-image: false - platforms: arm - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - with: - cache-binary: false - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.MY_TOKEN || secrets.GITHUB_TOKEN }} - - name: Build and push Docker image (armv7-${{ matrix.variant }}) - run: | - REPO_OWNER_LC="$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')" - case "${{ matrix.variant }}" in - mongodb) - MONGODB=YES; POSTGRESQL=NO; MARIADB=NO; TAG="-armv7-mongodb";; - postgresql) - MONGODB=NO; POSTGRESQL=YES; MARIADB=NO; TAG="-armv7-postgresql";; - mariadb) - MONGODB=NO; POSTGRESQL=NO; MARIADB=YES; TAG="-armv7-mariadb";; - all) - MONGODB=YES; POSTGRESQL=YES; MARIADB=YES; TAG="-armv7";; - slim) - MONGODB=NO; POSTGRESQL=NO; MARIADB=NO; TAG="-armv7-slim";; - esac - docker buildx build \ - --platform linux/arm/v7 \ - --build-arg INCLUDE_MONGODB_TOOLS=$MONGODB \ - --build-arg INCLUDE_POSTGRESQL_TOOLS=$POSTGRESQL \ - --build-arg INCLUDE_MARIADB_TOOLS=$MARIADB \ - --build-arg DISABLE_MINIFY=yes \ - --build-arg DISABLE_TRANSLATE=yes \ - --build-arg DISABLE_EXTRACT=yes \ - --build-arg PREINSTALL_LIBS=true \ - -f docker/Dockerfile \ - -t ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}$TAG \ - --push \ - . - - build-armv6: - runs-on: ubuntu-22.04 - needs: translate - strategy: - fail-fast: false - max-parallel: 3 - matrix: - variant: [mongodb, postgresql, mariadb, all, slim] - name: Build Docker Image (armv6-${{ matrix.variant }}) - steps: - - name: Download repo artifact - uses: actions/download-artifact@v5 - with: - name: repo-with-translations - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - with: - cache-image: false - platforms: arm - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - with: - cache-binary: false - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.MY_TOKEN || secrets.GITHUB_TOKEN }} - - name: Build and push Docker image (armv6-${{ matrix.variant }}) - run: | - REPO_OWNER_LC="$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')" - case "${{ matrix.variant }}" in - mongodb) - MONGODB=YES; POSTGRESQL=NO; MARIADB=NO; TAG="-armv6-mongodb";; - postgresql) - MONGODB=NO; POSTGRESQL=YES; MARIADB=NO; TAG="-armv6-postgresql";; - mariadb) - MONGODB=NO; POSTGRESQL=NO; MARIADB=YES; TAG="-armv6-mariadb";; - all) - MONGODB=YES; POSTGRESQL=YES; MARIADB=YES; TAG="-armv6";; - slim) - MONGODB=NO; POSTGRESQL=NO; MARIADB=NO; TAG="-armv6-slim";; - esac - docker buildx build \ - --platform linux/arm/v6 \ - --build-arg INCLUDE_MONGODB_TOOLS=$MONGODB \ - --build-arg INCLUDE_POSTGRESQL_TOOLS=$POSTGRESQL \ - --build-arg INCLUDE_MARIADB_TOOLS=$MARIADB \ - --build-arg DISABLE_MINIFY=yes \ - --build-arg DISABLE_TRANSLATE=yes \ - --build-arg DISABLE_EXTRACT=yes \ - --build-arg PREINSTALL_LIBS=true \ - -f docker/Dockerfile \ - -t ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}$TAG \ - --push \ - . - merge-manifest: runs-on: ubuntu-22.04 needs: - translate - build-amd64 - build-arm64 - - build-armv7 - - build-armv6 name: Create and Push Multi-Arch Manifest steps: - name: Set up Docker Buildx @@ -300,36 +180,26 @@ jobs: -t ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-mongodb \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-amd64-mongodb \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64-mongodb \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv7-mongodb \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv6-mongodb # postgresql docker buildx imagetools create \ -t ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-postgresql \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-amd64-postgresql \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64-postgresql \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv7-postgresql \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv6-postgresql # mariadb docker buildx imagetools create \ -t ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-mariadb \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-amd64-mariadb \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64-mariadb \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv7-mariadb \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv6-mariadb # all (no suffix) docker buildx imagetools create \ -t ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }} \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-amd64 \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64 \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv7 \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv6 # slim docker buildx imagetools create \ -t ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-slim \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-amd64-slim \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64-slim \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv7-slim \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv6-slim - name: Create and push 'latest' tags (releases only) if: github.event_name == 'release' run: | @@ -339,33 +209,23 @@ jobs: -t ghcr.io/$REPO_OWNER_LC/meshcentral:latest-mongodb \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-amd64-mongodb \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64-mongodb \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv7-mongodb \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv6-mongodb # latest-postgresql docker buildx imagetools create \ -t ghcr.io/$REPO_OWNER_LC/meshcentral:latest-postgresql \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-amd64-postgresql \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64-postgresql \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv7-postgresql \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv6-postgresql # latest-mariadb docker buildx imagetools create \ -t ghcr.io/$REPO_OWNER_LC/meshcentral:latest-mariadb \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-amd64-mariadb \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64-mariadb \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv7-mariadb \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv6-mariadb # latest (all databases) docker buildx imagetools create \ -t ghcr.io/$REPO_OWNER_LC/meshcentral:latest \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-amd64 \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64 \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv7 \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv6 # latest-slim docker buildx imagetools create \ -t ghcr.io/$REPO_OWNER_LC/meshcentral:latest-slim \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-amd64-slim \ ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64-slim \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv7-slim \ - ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-armv6-slim