diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index fe6bbd0..6ad0829 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -1550,9 +1550,11 @@ jobs:
             docker images
 
             make ${{ matrix.image_name }}.tag-amd64
-            make ${{ matrix.image_name }}.tag-arm64
-
             make ${{ matrix.image_name }}.push-amd64
+
+            export HOST_ARCH=arm64
+            make ${{ matrix.image_name }}.tag-arm64
             make ${{ matrix.image_name }}.push-arm64
+            unset HOST_ARCH
 
             make ${{ matrix.image_name }}.push
diff --git a/Makefile b/Makefile
index 1eb2bfc..4a826d6 100644
--- a/Makefile
+++ b/Makefile
@@ -30,7 +30,7 @@ TAG_FLAG := $(or $(TAG_FLAG), --tag)
 ORG = dockcross
 
 # Host architecture
-HOST_ARCH := $(shell uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/')
+HOST_ARCH := $(or $(HOST_ARCH), shell uname -m | sed -e 's/x86_64/amd64/' -e 's/aarch64/arm64/')
 
 # Directory where to generate the dockcross script for each images (e.g bin/dockcross-manylinux2014-x64)
 BIN = ./bin