@@ -12,44 +12,67 @@ jobs:
1212 with :
1313 fetch-depth : 0
1414
15+ - name : Set up QEMU
16+ uses : docker/setup-qemu-action@v2
17+
1518 - name : Set up Docker Buildx
1619 id : buildx
1720 uses : docker/setup-buildx-action@v2
18-
19- - name : Set up qemu emulators
20- run : |
21- docker run --rm --privileged tonistiigi/binfmt --install all
21+
22+ - name : Docker login
23+ uses : docker/login-action@v1
24+ with :
25+ registry : ghcr.io
26+ username : ${{ github.actor }}
27+ password : ${{ secrets.GITHUB_TOKEN }}
2228
2329 - name : Set latest tag
2430 if : github.event.action == 'released'
2531 run : |
26- echo "DOCKER_TAGS=${{ env.DOCKER_TAGS }} --tag ghcr.io/hyperledger /firefly:latest" >> $GITHUB_ENV
32+ echo "DOCKER_TAGS=${{ env.DOCKER_TAGS }}, ghcr.io/${{ github.repository_owner }} /firefly:latest" >> $GITHUB_ENV
2733
2834 - name : Set alpha tag
2935 if : github.event.action == 'prereleased' && contains(github.ref, 'alpha')
3036 run : |
31- echo "DOCKER_TAGS=${{ env.DOCKER_TAGS }} --tag ghcr.io/hyperledger /firefly:alpha" >> $GITHUB_ENV
37+ echo "DOCKER_TAGS=${{ env.DOCKER_TAGS }}, ghcr.io/${{ github.repository_owner }} /firefly:alpha" >> $GITHUB_ENV
3238
3339 - name : Set beta tag
3440 if : github.event.action == 'prereleased' && contains(github.ref, 'beta')
3541 run : |
36- echo "DOCKER_TAGS=${{ env.DOCKER_TAGS }} --tag ghcr.io/hyperledger /firefly:beta" >> $GITHUB_ENV
42+ echo "DOCKER_TAGS=${{ env.DOCKER_TAGS }}, ghcr.io/${{ github.repository_owner }} /firefly:beta" >> $GITHUB_ENV
3743
3844 - name : Set rc tag
3945 if : github.event.action == 'prereleased' && contains(github.ref, 'rc')
4046 run : |
41- echo "DOCKER_TAGS=${{ env.DOCKER_TAGS }} --tag ghcr.io/hyperledger /firefly:rc" >> $GITHUB_ENV
47+ echo "DOCKER_TAGS=${{ env.DOCKER_TAGS }}, ghcr.io/${{ github.repository_owner }} /firefly:rc" >> $GITHUB_ENV
4248
43- - name : Build
49+ - name : Read manifest.json
50+ id : manifest
4451 run : |
45- make DOCKER_ARGS="\
46- --build-arg BUILD_VERSION=${GITHUB_REF##*/} \
47- --build-arg GIT_REF=$GITHUB_SHA \
48- --label commit=$GITHUB_SHA \
49- --label build_date=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
50- --label tag=${GITHUB_REF##*/} \
51- --tag ghcr.io/hyperledger/firefly:${GITHUB_REF##*/} \
52- --tag ghcr.io/hyperledger/firefly:head \
53- ${{ env.DOCKER_TAGS }} \
54- --push" \
55- docker-multiarch
52+ echo ::set-output name=FIREFLY_BUILDER_TAG::$(cat manifest.json | jq -r '.build."firefly-builder".image')
53+ echo ::set-output name=FABRIC_BUILDER_TAG::$(cat manifest.json | jq -r '.build."fabric-builder".image')
54+ echo ::set-output name=FABRIC_BUILDER_PLATFORM::$(cat manifest.json | jq -r '.build."fabric-builder".platform')
55+ echo ::set-output name=SOLIDITY_BUILDER_TAG::$(cat manifest.json | jq -r '.build."solidity-builder".image')
56+ echo ::set-output name=BASE_TAG::$(cat manifest.json | jq -r '.build.base.image')
57+ echo ::set-output name=UI_TAG::$(cat manifest.json | jq -r '.ui.tag')
58+ echo ::set-output name=UI_RELEASE::$(cat manifest.json | jq -r '.ui.release')
59+
60+ - name : Build and push
61+ uses : docker/build-push-action@v2
62+ with :
63+ context : ./
64+ file : ./Dockerfile
65+ builder : ${{ steps.buildx.outputs.name }}
66+ push : true
67+ tags : ghcr.io/${{ github.repository_owner }}/firefly:${{ github.ref_name }},ghcr.io/${{ github.repository_owner }}/firefly:head,${{ env.DOCKER_TAGS }}
68+ labels : commit=$GITHUB_SHA, build_date=$(date -u +"%Y-%m-%dT%H:%M:%SZ"), tag=${{ steps.build_tag_generator.outputs.BUILD_TAG }}
69+ cache-from : type=registry,ref=ghcr.io/${{ github.repository_owner }}/firefly:buildcache
70+ cache-to : type=registry,ref=ghcr.io/${{ github.repository_owner }}/firefly:buildcache,mode=max
71+ build-args : |
72+ FIREFLY_BUILDER_TAG=${{ steps.manifest.outputs.FIREFLY_BUILDER_TAG }}
73+ FABRIC_BUILDER_TAG=${{ steps.manifest.outputs.FABRIC_BUILDER_TAG }}
74+ FABRIC_BUILDER_PLATFORM=${{ steps.manifest.outputs.FABRIC_BUILDER_PLATFORM }}
75+ SOLIDITY_BUILDER_TAG=${{ steps.manifest.outputs.SOLIDITY_BUILDER_TAG }}
76+ BASE_TAG=${{ steps.manifest.outputs.BASE_TAG }}
77+ UI_TAG=${{ steps.manifest.outputs.UI_TAG }}
78+ UI_RELEASE=${{ steps.manifest.outputs.UI_RELEASE }}
0 commit comments