Skip to content

Commit cd45174

Browse files
committed
Build static server binaries
1 parent 78c6b93 commit cd45174

1 file changed

Lines changed: 63 additions & 0 deletions

File tree

.github/workflows/build.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Build & upload binaries
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
workflow_dispatch:
8+
9+
jobs:
10+
build_ubuntu:
11+
name: Build Ubuntu
12+
runs-on: ubuntu-24.04
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- name: Install lipo
17+
run: |
18+
sudo apt-get update
19+
sudo apt-get install -y llvm-18
20+
21+
- name: Build
22+
run: |
23+
mkdir -p mmseqs-server/bin
24+
cp -f README.md LICENSE mmseqs-server
25+
cd backend
26+
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -o mmseqs-server-amd64
27+
GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -o mmseqs-server-arm64
28+
/usr/lib/llvm-18/bin/llvm-lipo \
29+
-create \
30+
-arch x86_64 mmseqs-server-amd64 \
31+
-arch arm64 mmseqs-server-arm64 \
32+
-output "../mmseqs-server/bin/mmseqs-server"
33+
rm -f mmseqs-server-amd64 mmseqs-server-arm64
34+
cd ..
35+
chmod +x mmseqs-server/bin/mmseqs-server
36+
tar -czvf mmseqs-server-osx-universal.tar.gz mmseqs-server
37+
rm -f mmseqs-server/bin/mmseqs-server
38+
(cd backend/; GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o ../mmseqs-server/bin/mmseqs-server)
39+
chmod +x mmseqs-server/bin/mmseqs-server
40+
tar -czvf mmseqs-server-linux-x86_64.tar.gz mmseqs-server
41+
rm -f mmseqs-server/bin/mmseqs-server
42+
(cd backend/; GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o ../mmseqs-server/bin/mmseqs-server)
43+
chmod +x mmseqs-server/bin/mmseqs-server
44+
tar -czvf mmseqs-server-linux-arm64.tar.gz mmseqs-server
45+
rm -f mmseqs-server/bin/mmseqs-server
46+
47+
- name: Upload
48+
if: github.event_name != 'pull_request'
49+
run: |
50+
mkdir -p $HOME/.ssh
51+
echo "$PRIVATE_KEY" > $HOME/.ssh/id_rsa
52+
chmod 700 $HOME/.ssh && chmod 600 $HOME/.ssh/id_rsa
53+
ssh-keygen -f $HOME/.ssh/id_rsa -y > $HOME/.ssh/id_rsa.pub
54+
ssh-keygen -Y sign -f $HOME/.ssh/id_rsa \
55+
-n file mmseqs-server-osx-universal.tar.gz mmseqs-server-linux-x86_64.tar.gz mmseqs-server-linux-arm64.tar.gz
56+
curl --retry 5 --retry-all-errors -X POST \
57+
-F file[]=@mmseqs-server-osx-universal.tar.gz -F signature[]=@mmseqs-server-osx-universal.tar.gz.sig \
58+
-F file[]=@mmseqs-server-linux-x86_64.tar.gz -F signature[]=@mmseqs-server-linux-x86_64.tar.gz.sig \
59+
-F file[]=@mmseqs-server-linux-arm64.tar.gz -F signature[]=@mmseqs-server-linux-arm64.tar.gz.sig \
60+
-F identifier="mmseqs-server" -F directory="${{ github.sha }}" \
61+
https://mmseqs.com/upload
62+
env:
63+
PRIVATE_KEY : ${{ secrets.PRIVATE_KEY }}

0 commit comments

Comments
 (0)