Skip to content

Commit 6bf203c

Browse files
authored
Build arm image (and update actions) (#217)
1 parent f15aaf9 commit 6bf203c

File tree

2 files changed

+59
-12
lines changed

2 files changed

+59
-12
lines changed

.github/workflows/build_images.yml

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,31 @@ name: Build Images
22
on:
33
push:
44
branches:
5-
- master
6-
- main
5+
- master
6+
- main
77

88
jobs:
99
build:
1010
runs-on: ubuntu-20.04
1111
steps:
12-
- uses: actions/checkout@v2
12+
- uses: actions/checkout@v4
1313
with:
1414
fetch-depth: 2
15+
- name: Free Disk Space (Ubuntu)
16+
uses: jlumbroso/free-disk-space@main
17+
with:
18+
# this might remove tools that are actually needed,
19+
# if set to "true" but frees about 6 GB
20+
tool-cache: false
21+
22+
# all of these default to true, but feel free to set to
23+
# "false" if necessary for your workflow
24+
android: true
25+
dotnet: true
26+
haskell: true
27+
large-packages: true
28+
docker-images: false
29+
swap-storage: true
1530
- name: get golang version 1
1631
run: |
1732
export VERSION=$(cat .golang_version | awk -F',' '{print $1}' | sed 's/go1/go-1/')
@@ -43,33 +58,36 @@ jobs:
4358
echo "value=$(echo -n $VAL)" >> $GITHUB_OUTPUT
4459
id: toolchain_build
4560
- name: Set up Docker Buildx
46-
uses: docker/setup-buildx-action@v1
61+
uses: docker/setup-buildx-action@v2
4762
- name: Login to Docker Hub
48-
uses: docker/login-action@v1
63+
uses: docker/login-action@v2
4964
with:
5065
username: ${{ secrets.DOCKER_USERNAME }}
5166
password: ${{ secrets.DOCKER_PASSWORD }}
5267
- name: build toolchain image
53-
uses: docker/build-push-action@v2
68+
uses: docker/build-push-action@v4
5469
if: steps.toolchain_build.outputs.value != '0'
5570
with:
5671
context: docker/toolchain/
72+
platforms: linux/amd64,linux/arm64
5773
tags: techknowlogick/xgo:toolchain
5874
push: true
5975
file: docker/toolchain/Dockerfile
6076
- name: build golang ${{ steps.golang_version_1.outputs.value }} image base
61-
uses: docker/build-push-action@v2
77+
uses: docker/build-push-action@v4
6278
with:
6379
context: docker/${{ steps.golang_version_1.outputs.value }}/
80+
platforms: linux/amd64,linux/arm64
6481
tags: techknowlogick/xgo:${{ steps.golang_version_1.outputs.value }}-base
6582
push: true
6683
file: docker/${{ steps.golang_version_1.outputs.value }}/Dockerfile
6784
build-contexts: |
6885
toolchain=docker-image://techknowlogick/xgo:toolchain
6986
- name: build golang ${{ steps.golang_version_1.outputs.value }} image
70-
uses: docker/build-push-action@v3
87+
uses: docker/build-push-action@v4
7188
with:
7289
context: .
90+
platforms: linux/amd64,linux/arm64
7391
tags: techknowlogick/xgo:${{ steps.golang_version_1.outputs.value }},techknowlogick/xgo:${{ steps.golang_version_1.outputs.wildcard }}
7492
push: true
7593
build-args: |
@@ -78,9 +96,10 @@ jobs:
7896
build-contexts: |
7997
${{ steps.golang_version_1.outputs.value }}-base=docker-image://techknowlogick/xgo:${{ steps.golang_version_1.outputs.value }}-base
8098
- name: build golang ${{ steps.golang_version_2.outputs.value }} image
81-
uses: docker/build-push-action@v2
99+
uses: docker/build-push-action@v4
82100
with:
83101
context: docker/${{ steps.golang_version_2.outputs.value }}/
102+
platforms: linux/amd64,linux/arm64
84103
tags: techknowlogick/xgo:${{ steps.golang_version_2.outputs.value }}-base
85104
push: true
86105
file: docker/${{ steps.golang_version_2.outputs.value }}/Dockerfile
@@ -90,6 +109,7 @@ jobs:
90109
uses: docker/build-push-action@v3
91110
with:
92111
context: .
112+
platforms: linux/amd64,linux/arm64
93113
tags: techknowlogick/xgo:${{ steps.golang_version_2.outputs.value }},techknowlogick/xgo:${{ steps.golang_version_2.outputs.wildcard }}
94114
push: true
95115
build-args: |
@@ -98,9 +118,10 @@ jobs:
98118
build-contexts: |
99119
${{ steps.golang_version_2.outputs.value }}-base=docker-image://techknowlogick/xgo:${{ steps.golang_version_2.outputs.value }}-base
100120
- name: build latest image
101-
uses: docker/build-push-action@v2
121+
uses: docker/build-push-action@v4
102122
with:
103123
context: docker/go-latest/
124+
platforms: linux/amd64,linux/arm64
104125
tags: techknowlogick/xgo:latest
105126
push: true
106127
file: docker/go-latest/Dockerfile

.github/workflows/test_pr.yml

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,36 @@ jobs:
66
test:
77
runs-on: ubuntu-20.04
88
steps:
9-
- uses: actions/checkout@v2
9+
- uses: actions/checkout@v4
1010
with:
1111
fetch-depth: 2
12+
# FIXME: https://github.com/jlumbroso/free-disk-space/issues/17
13+
- name: same as 'large-packages' but without 'google-cloud-sdk'
14+
shell: bash
15+
run: |
16+
sudo apt-get remove -y '^dotnet-.*'
17+
sudo apt-get remove -y '^llvm-.*'
18+
sudo apt-get remove -y 'php.*'
19+
sudo apt-get remove -y '^mongodb-.*'
20+
sudo apt-get remove -y '^mysql-.*'
21+
sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri
22+
sudo apt-get autoremove -y
23+
sudo apt-get clean
24+
- name: Free Disk Space (Ubuntu)
25+
uses: jlumbroso/free-disk-space@main
26+
with:
27+
# this might remove tools that are actually needed,
28+
# if set to "true" but frees about 6 GB
29+
tool-cache: false
30+
31+
# all of these default to true, but feel free to set to
32+
# "false" if necessary for your workflow
33+
android: true
34+
dotnet: true
35+
haskell: true
36+
large-packages: false
37+
docker-images: false
38+
swap-storage: true
1239
- name: get golang version 1
1340
run: |
1441
export VERSION=$(cat .golang_version | awk -F',' '{print $1}' | sed 's/go1/go-1/')
@@ -85,4 +112,3 @@ jobs:
85112
86113
echo "Run tests on latest go ${{ steps.golang_version_1.outputs.value }}"
87114
env IMAGEID="techknowlogick/xgo:${{ steps.golang_version_1.outputs.value }}" bats xgo.bats
88-

0 commit comments

Comments
 (0)