|
|
@@ -321,20 +321,21 @@ jobs:
|
|
321
|
321
|
extra-images: ${{ secrets.DOCKER_IMAGE }}:${{ env.LATEST_TAG }}-amd64,${{ secrets.DOCKER_IMAGE }}:${{ env.LATEST_TAG }}-arm64v8,${{ secrets.DOCKER_IMAGE }}:${{ env.LATEST_TAG }}-armv7,${{ secrets.DOCKER_IMAGE }}:${{ env.LATEST_TAG }}-i386
|
|
322
|
322
|
push: true
|
|
323
|
323
|
|
|
324
|
|
-
|
|
325
|
324
|
|
|
326
|
|
- # docker build and push of classic images
|
|
|
325
|
+ # docker build and push of single-arch images
|
|
327
|
326
|
docker-classic:
|
|
328
|
327
|
|
|
329
|
|
- name: Docker push classic - ${{ matrix.job.name }}
|
|
|
328
|
+ name: Docker push - ${{ matrix.job.name }}
|
|
330
|
329
|
needs: build
|
|
331
|
330
|
runs-on: ubuntu-22.04
|
|
332
|
331
|
strategy:
|
|
333
|
332
|
fail-fast: false
|
|
334
|
333
|
matrix:
|
|
335
|
334
|
job:
|
|
336
|
|
- - { name: "amd64", docker_platform: "linux/amd64", tag: "latest" }
|
|
337
|
|
- - { name: "arm64v8", docker_platform: "linux/arm64", tag: "latest-arm64v8" }
|
|
|
335
|
+ - { name: "amd64", docker_platform: "linux/amd64" }
|
|
|
336
|
+ - { name: "arm64v8", docker_platform: "linux/arm64" }
|
|
|
337
|
+ - { name: "armv7", docker_platform: "linux/arm/v7" }
|
|
|
338
|
+ - { name: "i386", docker_platform: "linux/386" }
|
|
338
|
339
|
|
|
339
|
340
|
steps:
|
|
340
|
341
|
|
|
|
@@ -348,7 +349,7 @@ jobs:
|
|
348
|
349
|
path: docker-classic/
|
|
349
|
350
|
|
|
350
|
351
|
- name: Make binaries executable
|
|
351
|
|
- run: chmod -v a+x docker-classic/hbb*
|
|
|
352
|
+ run: chmod -v a+x docker-classic/*
|
|
352
|
353
|
|
|
353
|
354
|
- name: Set up QEMU
|
|
354
|
355
|
uses: docker/setup-qemu-action@v2
|
|
|
@@ -369,6 +370,14 @@ jobs:
|
|
369
|
370
|
with:
|
|
370
|
371
|
images: registry.hub.docker.com/${{ secrets.DOCKER_IMAGE_CLASSIC }}
|
|
371
|
372
|
|
|
|
373
|
+ - name: Get git tag
|
|
|
374
|
+ id: vars
|
|
|
375
|
+ run: |
|
|
|
376
|
+ T=${GITHUB_REF#refs/*/}
|
|
|
377
|
+ M=${T%%.*}
|
|
|
378
|
+ echo "GIT_TAG=$T" >> $GITHUB_ENV
|
|
|
379
|
+ echo "MAJOR_TAG=$M" >> $GITHUB_ENV
|
|
|
380
|
+
|
|
372
|
381
|
- name: Build and push Docker image
|
|
373
|
382
|
uses: docker/build-push-action@v3
|
|
374
|
383
|
with:
|
|
|
@@ -376,9 +385,61 @@ jobs:
|
|
376
|
385
|
platforms: ${{ matrix.job.docker_platform }}
|
|
377
|
386
|
push: true
|
|
378
|
387
|
tags: |
|
|
379
|
|
- ${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ matrix.job.tag }}
|
|
|
388
|
+ ${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.LATEST_TAG }}-${{ matrix.job.name }}
|
|
|
389
|
+ ${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.GIT_TAG }}-${{ matrix.job.name }}
|
|
|
390
|
+ ${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.MAJOR_TAG }}-${{ matrix.job.name }}
|
|
380
|
391
|
labels: ${{ steps.meta.outputs.labels }}
|
|
381
|
392
|
|
|
|
393
|
+ # docker build and push of multiarch images
|
|
|
394
|
+ docker-manifest-classic:
|
|
|
395
|
+
|
|
|
396
|
+ name: Docker manifest
|
|
|
397
|
+ needs: docker
|
|
|
398
|
+ runs-on: ubuntu-22.04
|
|
|
399
|
+
|
|
|
400
|
+ steps:
|
|
|
401
|
+
|
|
|
402
|
+ - name: Log in to Docker Hub
|
|
|
403
|
+ if: github.event_name != 'pull_request'
|
|
|
404
|
+ uses: docker/login-action@v2
|
|
|
405
|
+ with:
|
|
|
406
|
+ username: ${{ secrets.DOCKER_USERNAME }}
|
|
|
407
|
+ password: ${{ secrets.DOCKER_PASSWORD }}
|
|
|
408
|
+
|
|
|
409
|
+ - name: Get git tag
|
|
|
410
|
+ id: vars
|
|
|
411
|
+ run: |
|
|
|
412
|
+ T=${GITHUB_REF#refs/*/}
|
|
|
413
|
+ M=${T%%.*}
|
|
|
414
|
+ echo "GIT_TAG=$T" >> $GITHUB_ENV
|
|
|
415
|
+ echo "MAJOR_TAG=$M" >> $GITHUB_ENV
|
|
|
416
|
+
|
|
|
417
|
+ # manifest for :1.2.3 tag
|
|
|
418
|
+ # this has to run only if invoked by a new tag
|
|
|
419
|
+ - name: Create and push manifest (:ve.rs.ion)
|
|
|
420
|
+ uses: Noelware/docker-manifest-action@master
|
|
|
421
|
+ if: github.event_name != 'workflow_dispatch'
|
|
|
422
|
+ with:
|
|
|
423
|
+ base-image: ${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.GIT_TAG }}
|
|
|
424
|
+ extra-images: ${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.GIT_TAG }}-amd64,${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.GIT_TAG }}-arm64v8,${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.GIT_TAG }}-armv7,${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.GIT_TAG }}-i386
|
|
|
425
|
+ push: true
|
|
|
426
|
+
|
|
|
427
|
+ # manifest for :1 tag (major release)
|
|
|
428
|
+ - name: Create and push manifest (:major)
|
|
|
429
|
+ uses: Noelware/docker-manifest-action@master
|
|
|
430
|
+ with:
|
|
|
431
|
+ base-image: ${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.MAJOR_TAG }}
|
|
|
432
|
+ extra-images: ${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.MAJOR_TAG }}-amd64,${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.MAJOR_TAG }}-arm64v8,${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.MAJOR_TAG }}-armv7,${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.MAJOR_TAG }}-i386
|
|
|
433
|
+ push: true
|
|
|
434
|
+
|
|
|
435
|
+ # manifest for :latest tag
|
|
|
436
|
+ - name: Create and push manifest (:latest)
|
|
|
437
|
+ uses: Noelware/docker-manifest-action@master
|
|
|
438
|
+ with:
|
|
|
439
|
+ base-image: ${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.LATEST_TAG }}
|
|
|
440
|
+ extra-images: ${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.LATEST_TAG }}-amd64,${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.LATEST_TAG }}-arm64v8,${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.LATEST_TAG }}-armv7,${{ secrets.DOCKER_IMAGE_CLASSIC }}:${{ env.LATEST_TAG }}-i386
|
|
|
441
|
+ push: true
|
|
|
442
|
+
|
|
382
|
443
|
|
|
383
|
444
|
deb-package:
|
|
384
|
445
|
|