Skip to content

Commit 47cbcbc

Browse files
authored
Update build-linux-arm64.yml
1 parent 1693f7f commit 47cbcbc

File tree

1 file changed

+41
-102
lines changed

1 file changed

+41
-102
lines changed
+41-102
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,47 @@
1-
name: Build and Upload Multi-Platform Binaries
1+
name: Multi-Architecture Build
22

33
on:
4-
workflow_call:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
58

69
jobs:
710
build:
8-
runs-on: ubuntu-20.04
9-
timeout-minutes: 60
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
arch: [amd64, arm64]
15+
os: [linux, darwin]
1016
steps:
11-
- name: Checkout code
12-
uses: actions/checkout@v3
13-
14-
- name: Set up QEMU
15-
uses: docker/setup-qemu-action@v2
16-
17-
- name: Set up Docker Buildx
18-
uses: docker/setup-buildx-action@v2
19-
20-
- name: Cache Go modules
21-
uses: actions/cache@v3
22-
with:
23-
path: |
24-
~/.cache/go-build
25-
/go/pkg/mod
26-
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
27-
restore-keys: |
28-
${{ runner.os }}-go-
29-
30-
- name: Set up Go
31-
uses: actions/setup-go@v4
32-
with:
33-
go-version: '1.22.4'
34-
35-
- name: Build Multi-Platform Binaries
36-
run: |
37-
docker buildx create --use
38-
docker buildx build \
39-
--file .github/workflows/Dockerfile \
40-
--platform linux/amd64,linux/arm64 \
41-
--output "type=local,dest=./build" \
42-
--progress plain \
43-
.
44-
echo "Multi-platform build completed"
45-
ls -al build/
46-
47-
- name: Create output directories
48-
run: |
49-
mkdir -p ./build/initia_${GITHUB_REF#refs/tags/}_amd64
50-
mkdir -p ./build/initia_${GITHUB_REF#refs/tags/}_arm64
51-
52-
- name: Move binaries to output directories
53-
run: |
54-
mv ./build/linux_amd64/initiad ./build/initia_${GITHUB_REF#refs/tags/}_amd64/initiad || true
55-
mv ./build/linux_amd64/libmovevm.so ./build/initia_${GITHUB_REF#refs/tags/}_amd64/libmovevm.so || true
56-
mv ./build/linux_amd64/libcompiler.so ./build/initia_${GITHUB_REF#refs/tags/}_amd64/libcompiler.so || true
57-
mv ./build/linux_arm64/initiad ./build/initia_${GITHUB_REF#refs/tags/}_arm64/initiad || true
58-
mv ./build/linux_arm64/libmovevm.so ./build/initia_${GITHUB_REF#refs/tags/}_arm64/libmovevm.so || true
59-
mv ./build/linux_arm64/libcompiler.so ./build/initia_${GITHUB_REF#refs/tags/}_arm64/libcompiler.so || true
60-
61-
- name: Create tarballs
62-
run: |
63-
cd ./build
64-
tar -czvf initia_${GITHUB_REF#refs/tags/}_Linux_amd64.tar.gz initia_${GITHUB_REF#refs/tags/}_amd64
65-
tar -czvf initia_${GITHUB_REF#refs/tags/}_Linux_arm64.tar.gz initia_${GITHUB_REF#refs/tags/}_arm64
66-
67-
- name: Verify binary architecture
68-
run: |
69-
file ./build/initia_${GITHUB_REF#refs/tags/}_amd64/initiad || true
70-
file ./build/initia_${GITHUB_REF#refs/tags/}_amd64/libmovevm.so || true
71-
file ./build/initia_${GITHUB_REF#refs/tags/}_amd64/libcompiler.so || true
72-
file ./build/initia_${GITHUB_REF#refs/tags/}_arm64/initiad || true
73-
file ./build/initia_${GITHUB_REF#refs/tags/}_arm64/libmovevm.so || true
74-
file ./build/initia_${GITHUB_REF#refs/tags/}_arm64/libcompiler.so || true
75-
76-
- name: Google Auth
77-
uses: 'google-github-actions/auth@v2'
78-
with:
79-
credentials_json: '${{ secrets.GCP_SA_KEY }}'
80-
81-
- name: Set up Cloud SDK
82-
uses: 'google-github-actions/setup-gcloud@v2'
83-
84-
- name: Upload to GCS
85-
env:
86-
GCS_BUCKET: ${{ secrets.GCS_BUCKET }}
87-
run: |
88-
gsutil cp ./build/initia_${GITHUB_REF#refs/tags/}_Linux_amd64.tar.gz gs://${GCS_BUCKET}/initia/${GITHUB_REF#refs/tags}/
89-
gsutil cp ./build/initia_${GITHUB_REF#refs/tags/}_Linux_arm64.tar.gz gs://${GCS_BUCKET}/initia/${GITHUB_REF#refs/tags}/
90-
91-
- name: Verify upload and Generate public URL
92-
env:
93-
GCS_BUCKET: ${{ secrets.GCS_BUCKET }}
94-
run: |
95-
if gsutil stat gs://${GCS_BUCKET}/initia/${GITHUB_REF#refs/tags}/initia_${GITHUB_REF#refs/tags}_Linux_amd64.tar.gz; then
96-
echo "File successfully uploaded"
97-
echo "Public URL: https://storage.googleapis.com/${GCS_BUCKET}/initia/${GITHUB_REF#refs/tags}/initia_${GITHUB_REF#refs/tags}_Linux_amd64.tar.gz" >> $GITHUB_STEP_SUMMARY
98-
else
99-
echo "File upload failed"
100-
exit 1
101-
fi
102-
if gsutil stat gs://${GCS_BUCKET}/initia/${GITHUB_REF#refs/tags}/initia_${GITHUB_REF#refs/tags}_Linux_arm64.tar.gz; then
103-
echo "File successfully uploaded"
104-
echo "Public URL: https://storage.googleapis.com/${GCS_BUCKET}/initia/${GITHUB_REF#refs/tags}/initia_${GITHUB_REF#refs/tags}_Linux_arm64.tar.gz" >> $GITHUB_STEP_SUMMARY
105-
else
106-
echo "File upload failed"
107-
exit 1
108-
fi
17+
- uses: actions/checkout@v2
18+
19+
- name: Set up QEMU
20+
uses: docker/setup-qemu-action@v1
21+
22+
- name: Set up Docker Buildx
23+
uses: docker/setup-buildx-action@v1
24+
25+
- name: Build for ${{ matrix.os }}-${{ matrix.arch }}
26+
env:
27+
ARCH: ${{ matrix.arch }}
28+
OS: ${{ matrix.os }}
29+
L1_VERSION: ${{ github.sha }}
30+
L1_NETWORK_NAME: testnet
31+
MOVEVM_VERSION: v0.1.0 # 적절한 버전으로 변경하세요
32+
run: |
33+
docker buildx build --platform ${{ matrix.os }}/${{ matrix.arch }} \
34+
--file .github/workflows/Dockerfile \
35+
--build-arg ARCH=${{ matrix.arch }} \
36+
--build-arg OS=${{ matrix.os }} \
37+
--build-arg L1_VERSION=${{ env.L1_VERSION }} \
38+
--build-arg L1_NETWORK_NAME=${{ env.L1_NETWORK_NAME }} \
39+
--build-arg MOVEVM_VERSION=${{ env.MOVEVM_VERSION }} \
40+
--output type=local,dest=./output \
41+
.
42+
43+
- name: Upload artifact
44+
uses: actions/upload-artifact@v2
45+
with:
46+
name: initia-${{ matrix.os }}-${{ matrix.arch }}
47+
path: ./output/initia_${{ env.L1_VERSION }}_${{ matrix.os }}_${{ matrix.arch }}.tar.gz

0 commit comments

Comments
 (0)