diff --git a/.github/workflows/dockersimple.yml b/.github/workflows/dockersimple.yml index 42d86ac6..290736c2 100644 --- a/.github/workflows/dockersimple.yml +++ b/.github/workflows/dockersimple.yml @@ -11,7 +11,7 @@ on: jobs: translate: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm name: Run Translations steps: - name: Checkout repository @@ -45,7 +45,7 @@ jobs: path: . build-amd64: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm needs: translate strategy: fail-fast: false @@ -103,7 +103,7 @@ jobs: . build-arm64: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04-arm needs: translate strategy: fail-fast: false @@ -159,131 +159,13 @@ jobs: -t ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}$TAG \ --push \ . - - build-armv7: - runs-on: ubuntu-latest - needs: translate - strategy: - fail-fast: false - 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-latest - needs: translate - strategy: - fail-fast: false - 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-latest + runs-on: ubuntu-24.04-arm needs: - translate - build-amd64 - build-arm64 - - build-armv7 - - build-armv6 name: Create and Push Multi-Arch Manifest steps: - name: Set up Docker Buildx @@ -303,34 +185,24 @@ jobs: docker buildx imagetools create \ -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 + ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64-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 + ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64-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 + ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64-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 + ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64 # 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 + ghcr.io/$REPO_OWNER_LC/meshcentral:${{ github.ref_name }}-arm64-slim