@@ -65,104 +65,16 @@ jobs:
6565 build-args : |
6666 GenCastFP_TAG=${{ env.GenCastFP_TAG }}
6767
68-
69- docker-arm :
70- runs-on : ubuntu-latest
71- steps :
72- -
73- name : Checkout
74- uses : actions/checkout@v3
75- -
76- name : Set up QEMU
77- uses : docker/setup-qemu-action@v2
78- -
79- name : Set up Docker Buildx
80- uses : docker/setup-buildx-action@v2
81- -
82- name : Login to Docker Hub
83- uses : docker/login-action@v2
84- with :
85- username : ${{ secrets.DOCKERHUB_USERNAME }}
86- password : ${{ secrets.DOCKERHUB_TOKEN }}
87-
88- -
89- name : Lower github-runner storage
90- run : |
91- # Remove software and language runtimes we're not using
92- sudo rm -rf \
93- "$AGENT_TOOLSDIRECTORY" \
94- /opt/google/chrome \
95- /opt/microsoft/msedge \
96- /opt/microsoft/powershell \
97- /opt/pipx \
98- /usr/lib/mono \
99- /usr/local/julia* \
100- /usr/local/lib/android \
101- /usr/local/lib/node_modules \
102- /usr/local/share/chromium \
103- /usr/local/share/powershell \
104- /usr/share/dotnet \
105- /usr/share/swift \
106- /opt/ghc \
107- /usr/local/share/boost
108- df -h /
109- -
110- name : Clean up tools
111- uses : jlumbroso/free-disk-space@main
112- with :
113- # this might remove tools that are actually needed,
114- # if set to "true" but frees about 6 GB
115- tool-cache : true
116-
117- # all of these default to true, but feel free to set to
118- # "false" if necessary for your workflow
119- android : true
120- dotnet : true
121- haskell : true
122- large-packages : true
123- docker-images : true
124- swap-storage : true
125-
126- -
127- name : Prune docker images (https://github.com/jens-maus/RaspberryMatic/blob/d5044bef3307bc61166377c162569de1a61cf332/.github/workflows/ci.yml#L34-L40)
128- run : |
129- sudo swapoff -a
130- sudo rm -f /swapfile
131- sudo apt clean
132- # docker rmi $(docker image ls -aq)
133- docker image prune -a
134- df -h
135- - name : Set build versions
136- id : set_versions
137- env :
138- DEP_REPO : nasa-nccs-hpda/GenCast_FP
139- run : |
140- DEP_TAG=$(curl -s https://api.github.com/repos/${DEP_REPO}/releases/latest | jq -r .tag_name)
141- echo "GenCastFP_TAG=$DEP_TAG" >> $GITHUB_ENV
142- echo "VERSION_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
143- echo "Using ${DEP_REPO} release tag: $DEP_TAG"
144- echo "Workflow release version: ${GITHUB_REF#refs/tags/}"
145- -
146- name : Build and push
147- uses : docker/build-push-action@v6
148- with :
149- context : .
150- platforms : linux/arm64
151- file : ./requirements/Dockerfile
152- push : true
153- tags : nasanccs/gencast-fp:${{ env.GenCastFP_TAG }}-arm64
154- build-args : |
155- GenCastFP_TAG=${{ env.GenCastFP_TAG }}
156-
15768 manifest :
158- needs : [docker-amd, docker-arm ]
69+ needs : [docker-amd]
15970 runs-on : ubuntu-latest
16071 steps :
16172 - name : Login to Docker Hub
16273 uses : docker/login-action@v2
16374 with :
16475 username : ${{ secrets.DOCKERHUB_USERNAME }}
16576 password : ${{ secrets.DOCKERHUB_TOKEN }}
77+
16678 - name : Set build versions
16779 id : set_versions
16880 env :
@@ -173,22 +85,21 @@ jobs:
17385 echo "VERSION_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
17486 echo "Using ${DEP_REPO} release tag: $DEP_TAG"
17587 echo "Workflow release version: ${GITHUB_REF#refs/tags/}"
176- - name : Extract per-platform digests
88+
89+ - name : Extract amd64 digest
17790 run : |
17891 AMD_DIGEST=$(docker buildx imagetools inspect nasanccs/gencast-fp:${{ env.GenCastFP_TAG }}-amd64 \
17992 --format '{{range .Manifest.Manifests}}{{if eq .Platform.Architecture "amd64"}}{{.Digest}}{{end}}{{end}}')
180- ARM_DIGEST=$(docker buildx imagetools inspect nasanccs/gencast-fp:${{ env.GenCastFP_TAG }}-arm64 \
181- --format '{{range .Manifest.Manifests}}{{if eq .Platform.Architecture "arm64"}}{{.Digest}}{{end}}{{end}}')
18293 echo "AMD_DIGEST=$AMD_DIGEST" >> $GITHUB_ENV
183- echo "ARM_DIGEST=$ARM_DIGEST" >> $GITHUB_ENV
94+
18495 - name : Create and push manifest
18596 run : |
97+ # latest -> amd64 only
18698 docker manifest create nasanccs/gencast-fp:latest \
187- nasanccs/gencast-fp@${AMD_DIGEST} \
188- nasanccs/gencast-fp@${ARM_DIGEST}
99+ nasanccs/gencast-fp@${AMD_DIGEST}
189100 docker manifest push nasanccs/gencast-fp:latest
190101
102+ # version tag -> amd64 only
191103 docker manifest create nasanccs/gencast-fp:${{ env.GenCastFP_TAG }} \
192- nasanccs/gencast-fp@${AMD_DIGEST} \
193- nasanccs/gencast-fp@${ARM_DIGEST}
194- docker manifest push nasanccs/gencast-fp:${{ env.GenCastFP_TAG }}
104+ nasanccs/gencast-fp@${AMD_DIGEST}
105+ docker manifest push nasanccs/gencast-fp:${{ env.GenCastFP_TAG }}
0 commit comments