Skip to content

Commit 17e3120

Browse files
authored
Merge pull request #2 from KagurazakaNyaa/master
feat: add 7z binaries
2 parents de2db49 + 7e0e09f commit 17e3120

File tree

5 files changed

+105
-59
lines changed

5 files changed

+105
-59
lines changed

.github/workflows/build.yml

Lines changed: 24 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -3,74 +3,40 @@ name: Build
33
on:
44
push:
55
pull_request:
6+
workflow_dispatch:
67

78
jobs:
89
build:
910
runs-on: ubuntu-latest
1011

1112
steps:
12-
- uses: actions/checkout@v3
13+
- uses: actions/checkout@v5
1314

14-
- name: Set up Go
15-
uses: actions/setup-go@v3
15+
- name: Setup Go
16+
uses: actions/setup-go@v5
1617
with:
1718
go-version: 1.19
1819

19-
- name: Build
20-
run: |
21-
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_win32_x64.exe
22-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_linux_x64
23-
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_linux_arm64
24-
CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_linux_arm
25-
CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_linux_386
26-
CGO_ENABLED=0 GOOS=linux GOARCH=mips go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_linux_mips
27-
CGO_ENABLED=0 GOOS=linux GOARCH=mips64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_linux_mips64
28-
CGO_ENABLED=0 GOOS=linux GOARCH=mipsle go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_linux_mipsle
29-
CGO_ENABLED=0 GOOS=linux GOARCH=ppc64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_linux_ppc64
30-
CGO_ENABLED=0 GOOS=linux GOARCH=riscv64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_linux_riscv64
31-
CGO_ENABLED=0 GOOS=linux GOARCH=s390x go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_linux_s390x
32-
CGO_ENABLED=0 GOOS=netbsd GOARCH=amd64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_netbsd_x64
33-
CGO_ENABLED=0 GOOS=netbsd GOARCH=arm go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_netbsd_arm
34-
CGO_ENABLED=0 GOOS=netbsd GOARCH=arm64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_netbsd_arm64
35-
CGO_ENABLED=0 GOOS=openbsd GOARCH=386 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_openbsd_386
36-
CGO_ENABLED=0 GOOS=openbsd GOARCH=amd64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_openbsd_x64
37-
CGO_ENABLED=0 GOOS=openbsd GOARCH=arm go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_openbsd_arm
38-
CGO_ENABLED=0 GOOS=openbsd GOARCH=arm64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_openbsd_arm64
39-
CGO_ENABLED=0 GOOS=freebsd GOARCH=386 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_freebsd_386
40-
CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_freebsd_x64
41-
CGO_ENABLED=0 GOOS=freebsd GOARCH=arm go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_freebsd_arm
42-
CGO_ENABLED=0 GOOS=freebsd GOARCH=arm64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_freebsd_arm64
43-
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_darwin_amd64
44-
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o file_zip_darwin_arm64
20+
- name: Setup 7z
21+
uses: milliewalky/setup-7-zip@v2
4522

46-
- uses: "marvinpinto/action-automatic-releases@latest"
23+
- name: Build zip-tools
24+
run: ./build.sh
25+
26+
- name: Download 7z binaries
27+
run: ./download_7z.sh
28+
29+
- name: Upload artifacts
30+
uses: actions/upload-artifact@v4
31+
with:
32+
name: Development Build
33+
path: |
34+
output/*
35+
36+
- uses: softprops/action-gh-release@v2
37+
if: github.ref_type == 'tag'
4738
with:
48-
repo_token: "${{ secrets.GITHUB_TOKEN }}"
49-
automatic_release_tag: "latest"
50-
title: Development Build
51-
prerelease: true
39+
token: "${{ secrets.GITHUB_TOKEN }}"
40+
make_latest: true
5241
files: |
53-
file_zip_win32_x64.exe
54-
file_zip_linux_x64
55-
file_zip_linux_arm64
56-
file_zip_linux_arm
57-
file_zip_linux_386
58-
file_zip_linux_mips
59-
file_zip_linux_mips64
60-
file_zip_linux_mipsle
61-
file_zip_linux_ppc64
62-
file_zip_linux_riscv64
63-
file_zip_linux_s390x
64-
file_zip_netbsd_x64
65-
file_zip_netbsd_arm
66-
file_zip_netbsd_arm64
67-
file_zip_openbsd_386
68-
file_zip_openbsd_x64
69-
file_zip_openbsd_arm
70-
file_zip_openbsd_arm64
71-
file_zip_freebsd_386
72-
file_zip_freebsd_x64
73-
file_zip_freebsd_arm
74-
file_zip_freebsd_arm64
75-
file_zip_darwin_amd64
76-
file_zip_darwin_arm64
42+
output/*

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,7 @@ file-zip
2424

2525
.vscode
2626
main_linux
27-
main
27+
main
28+
29+
# 7z download target
30+
output/

7z.version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
2501

build.sh

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
#!/bin/bash
2+
set -ex
3+
4+
mkdir -p output
5+
6+
export CGO_ENABLED=0
7+
8+
GOOS=windows GOARCH=amd64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_win32_x64.exe
9+
GOOS=linux GOARCH=amd64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_linux_x64
10+
GOOS=linux GOARCH=arm64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_linux_arm64
11+
GOOS=linux GOARCH=arm go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_linux_arm
12+
GOOS=linux GOARCH=386 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_linux_386
13+
GOOS=linux GOARCH=mips go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_linux_mips
14+
GOOS=linux GOARCH=mips64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_linux_mips64
15+
GOOS=linux GOARCH=mipsle go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_linux_mipsle
16+
GOOS=linux GOARCH=ppc64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_linux_ppc64
17+
GOOS=linux GOARCH=riscv64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_linux_riscv64
18+
GOOS=linux GOARCH=s390x go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_linux_s390x
19+
GOOS=netbsd GOARCH=amd64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_netbsd_x64
20+
GOOS=netbsd GOARCH=arm go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_netbsd_arm
21+
GOOS=netbsd GOARCH=arm64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_netbsd_arm64
22+
GOOS=openbsd GOARCH=386 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_openbsd_386
23+
GOOS=openbsd GOARCH=amd64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_openbsd_x64
24+
GOOS=openbsd GOARCH=arm go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_openbsd_arm
25+
GOOS=openbsd GOARCH=arm64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_openbsd_arm64
26+
GOOS=freebsd GOARCH=386 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_freebsd_386
27+
GOOS=freebsd GOARCH=amd64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_freebsd_x64
28+
GOOS=freebsd GOARCH=arm go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_freebsd_arm
29+
GOOS=freebsd GOARCH=arm64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_freebsd_arm64
30+
GOOS=darwin GOARCH=amd64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_darwin_amd64
31+
GOOS=darwin GOARCH=arm64 go build -trimpath -ldflags '-s -w --extldflags "-static -fpic"' -o output/file_zip_darwin_arm64

download_7z.sh

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/bin/bash
2+
set -ex
3+
4+
LIB7Z_VERSION="$(cat 7z.version)"
5+
URL_7Z_WINDOWS_ALL=https://www.7-zip.org/a/7z${LIB7Z_VERSION}-extra.7z
6+
URL_7Z_MAC_ALL=https://www.7-zip.org/a/7z${LIB7Z_VERSION}-mac.tar.xz
7+
URL_7Z_LINUX_X86=https://www.7-zip.org/a/7z${LIB7Z_VERSION}-linux-x86.tar.xz
8+
URL_7Z_LINUX_X86_64=https://www.7-zip.org/a/7z${LIB7Z_VERSION}-linux-x64.tar.xz
9+
URL_7Z_LINUX_ARM=https://www.7-zip.org/a/7z${LIB7Z_VERSION}-linux-arm.tar.xz
10+
URL_7Z_LINUX_ARM64=https://www.7-zip.org/a/7z${LIB7Z_VERSION}-linux-arm64.tar.xz
11+
12+
mkdir -p output /tmp/7z
13+
14+
echo "Downloading Windows binaries..."
15+
wget "${URL_7Z_WINDOWS_ALL}" -O /tmp/7z/win32.7z
16+
7z x /tmp/7z/win32.7z -o/tmp/7z/win32 -y
17+
mv /tmp/7z/win32/x64/7za.exe output/7z_win32_x64.exe
18+
mv /tmp/7z/win32/arm64/7za.exe output/7z_win32_arm64.exe
19+
mv /tmp/7z/win32/License.txt output/7z-extra-license.txt
20+
echo "Done."
21+
22+
echo "Downloading Linux and Mac binaries..."
23+
mkdir -p /tmp/7z/linux-x86 /tmp/7z/linux-x64 /tmp/7z/linux-arm /tmp/7z/linux-arm64 /tmp/7z/mac
24+
wget "${URL_7Z_LINUX_X86}" -O /tmp/7z/linux-x86.tar.xz
25+
wget "${URL_7Z_LINUX_X86_64}" -O /tmp/7z/linux-x64.tar.xz
26+
wget "${URL_7Z_LINUX_ARM}" -O /tmp/7z/linux-arm.tar.xz
27+
wget "${URL_7Z_LINUX_ARM64}" -O /tmp/7z/linux-arm64.tar.xz
28+
wget "${URL_7Z_MAC_ALL}" -O /tmp/7z/mac.tar.xz
29+
tar xJf /tmp/7z/linux-x86.tar.xz -C /tmp/7z/linux-x86
30+
tar xJf /tmp/7z/linux-x64.tar.xz -C /tmp/7z/linux-x64
31+
tar xJf /tmp/7z/linux-arm.tar.xz -C /tmp/7z/linux-arm
32+
tar xJf /tmp/7z/linux-arm64.tar.xz -C /tmp/7z/linux-arm64
33+
tar xJf /tmp/7z/mac.tar.xz -C /tmp/7z/mac
34+
mv /tmp/7z/mac/License.txt output/7z-unix-license.txt
35+
mv /tmp/7z/linux-x86/7zz output/7z_linux_386
36+
mv /tmp/7z/linux-x64/7zz output/7z_linux_x64
37+
mv /tmp/7z/linux-arm/7zz output/7z_linux_arm
38+
mv /tmp/7z/linux-arm64/7zz output/7z_linux_arm64
39+
mv /tmp/7z/mac/7zz output/7z_darwin_arm64
40+
cp output/7z_darwin_arm64 output/7z_darwin_x64
41+
echo "Done."
42+
43+
echo "Cleanup..."
44+
rm -rf /tmp/7z
45+
echo "Done."

0 commit comments

Comments
 (0)