@@ -29,10 +29,18 @@ jobs:
2929 with :
3030 toolchain : stable
3131 override : true
32+ - name : Install Rust Targets
33+ run : |
34+ rustup target add x86_64-unknown-linux-gnu
35+ rustup target add aarch64-unknown-linux-gnu
3236 - name : Install Protoc
3337 uses : arduino/setup-protoc@v1
3438 with :
3539 repo-token : ${{ secrets.GITHUB_TOKEN }}
40+ - name : Install gcc-aarch64-linux-gnu
41+ run : |
42+ sudo apt-get update
43+ sudo apt-get install gcc-aarch64-linux-gnu
3644 - uses : actions/cache@v3
3745 with :
3846 path : |
@@ -42,11 +50,17 @@ jobs:
4250 ~/.cargo/git/db/
4351 target/
4452 key : ${{ runner.os }}-cargo-release-${{ hashFiles('**/Cargo.lock') }}
45- - name : Install Target
46- run : rustup target add x86_64-unknown-linux-gnu
47- - name : Build Executables
48- run : cargo build --release --target ${{ env.BUILD_TARGET }}
49- - name : Set version
53+ - name : Build amd64 Executables
54+ run : |
55+ cargo build --release --target x86_64-unknown-linux-gnu
56+ - name : Build arm64 Executables
57+ run : |
58+ cargo build --release --target aarch64-unknown-linux-gnu --config "target.aarch64-unknown-linux-gnu.linker = 'aarch64-linux-gnu-gcc'"
59+ - name : Set up QEMU
60+ uses : docker/setup-qemu-action@v3
61+ - name : Set up Docker Buildx
62+ uses : docker/setup-buildx-action@v3
63+ - name : Set Docker version
5064 id : set-version
5165 run : |
5266 if [ "${{ github.event_name }}" == 'push' ] && [ "${{ github.ref_type }}" == 'tag' ]; then
@@ -56,60 +70,55 @@ jobs:
5670 COMMIT_SHORT_HASH=$(git rev-parse --short=7 HEAD)
5771 echo "DOCKER_VERSION=${COMMIT_SHORT_HASH}" >> $GITHUB_ENV
5872 fi
59- - uses : satackey /action-docker-layer-caching@v0.0.11
73+ - uses : jpribyl /action-docker-layer-caching@v0.1.1
6074 continue-on-error : true
61-
6275 - name : Log in to Docker Hub
63- uses : docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
76+ uses : docker/login-action@v3
6477 with :
6578 username : ${{ secrets.DOCKERHUB_USERNAME }}
6679 password : ${{ secrets.DOCKERHUB_PASSWORD }}
67-
6880 - name : Extract metadata (tags, labels) for worker executor
6981 id : meta-worker-executor
70- uses : docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
82+ uses : docker/metadata-action@v5
7183 with :
7284 images : golemservices/golem-worker-executor
73-
7485 - name : Build and push worker executor image
75- uses : docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671
86+ uses : docker/build-push-action@v5
7687 with :
7788 context : .
78- file : ./golem-worker-executor-oss/docker/amd64/ Dockerfile
89+ file : ./golem-worker-executor-oss/docker/Dockerfile
7990 push : true
91+ platforms : linux/amd64,linux/arm64
8092 tags : ${{ steps.meta-worker-executor.outputs.tags }}
8193 labels : ${{ steps.meta-worker-executor.outputs.labels }}
82-
8394 - name : Extract metadata (tags, labels) for shard manager
8495 id : meta-shard-manager
85- uses : docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
96+ uses : docker/metadata-action@v5
8697 with :
8798 images : golemservices/golem-shard-manager
88-
8999 - name : Build and push shard manager image
90- uses : docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671
100+ uses : docker/build-push-action@v5
91101 with :
92102 context : .
93- file : ./golem-shard-manager/docker/amd64/ Dockerfile
103+ file : ./golem-shard-manager/docker/Dockerfile
94104 push : true
105+ platforms : linux/amd64,linux/arm64
95106 tags : ${{ steps.meta-shard-manager.outputs.tags }}
96107 labels : ${{ steps.meta-shard-manager.outputs.labels }}
97-
98108 - name : Extract metadata (tags, labels) for golem server
99109 id : meta-golem-server
100- uses : docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7
110+ uses : docker/metadata-action@v5
101111 with :
102112 images : golemservices/golem-server
103-
104113 - name : Build and push cloud server image
105- uses : docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671
114+ uses : docker/build-push-action@v5
106115 with :
107116 context : .
108- file : ./golem-cloud-server-oss/docker/amd64/ Dockerfile
117+ file : ./golem-cloud-server-oss/docker/Dockerfile
109118 push : true
119+ platforms : linux/amd64,linux/arm64
110120 tags : ${{ steps.meta-golem-server.outputs.tags }}
111121 labels : ${{ steps.meta-golem-server.outputs.labels }}
112-
113122 build :
114123 runs-on : ubuntu-latest
115124 steps :
0 commit comments