From f236b80095de4eec7b82dfa5c899c9e7a6765792 Mon Sep 17 00:00:00 2001 From: blu3 Date: Fri, 31 Jan 2025 16:31:41 +0300 Subject: [PATCH] Update release action --- .github/workflows/release.yml | 245 +++++++++++++++++----------------- 1 file changed, 126 insertions(+), 119 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b20b2bc..66ac9113 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: Make release +name: Release on: release: @@ -10,122 +10,129 @@ permissions: jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - - name: Checkout project - uses: actions/checkout@v4 - - name: Setup Go - uses: actions/setup-go@v4 - with: - go-version: '1.23' - - name: Prepare source tarball - run: | - git clone -b ${{ github.event.release.name }} --depth 1 https://github.com/schollz/croc croc-${{ github.event.release.name }} - cd croc-${{ github.event.release.name }} && go mod tidy && go mod vendor - cd .. && tar -czvf croc_${{ github.event.release.name }}_src.tar.gz croc-${{ github.event.release.name }} - - name: Build files - run: | - CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags '-extldflags "-static"' -o croc.exe - zip croc_${{ github.event.release.name }}_Windows-64bit.zip croc.exe LICENSE - CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags '-extldflags "-static"' -o croc.exe - zip croc_${{ github.event.release.name }}_Windows-32bit.zip croc.exe LICENSE - CGO_ENABLED=0 GOOS=windows GOARCH=arm go build -ldflags '-extldflags "-static"' -o croc.exe - zip croc_${{ github.event.release.name }}_Windows-ARM.zip croc.exe LICENSE - CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build -ldflags '-extldflags "-static"' -o croc.exe - zip croc_${{ github.event.release.name }}_Windows-ARM64.zip croc.exe LICENSE - CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags '-extldflags "-static"' -o croc - tar -czvf croc_${{ github.event.release.name }}_Linux-64bit.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags '-extldflags "-static"' -o croc - tar -czvf croc_${{ github.event.release.name }}_Linux-32bit.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags '-extldflags "-static"' -o croc - tar -czvf croc_${{ github.event.release.name }}_Linux-ARM.tar.gz croc LICENSE - GOARM=5 CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags '-extldflags "-static"' -o croc - tar -czvf croc_${{ github.event.release.name }}_Linux-ARMv5.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags '-extldflags "-static"' -o croc - tar -czvf croc_${{ github.event.release.name }}_Linux-ARM64.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags '-s -extldflags "-sectcreate __TEXT __info_plist Info.plist"' -o croc - tar -czvf croc_${{ github.event.release.name }}_macOS-64bit.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags '-s -extldflags "-sectcreate __TEXT __info_plist Info.plist"' -o croc - tar -czvf croc_${{ github.event.release.name }}_macOS-ARM64.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=dragonfly GOARCH=amd64 go build -ldflags '' -o croc - tar -czvf croc_${{ github.event.release.name }}_DragonFlyBSD-64bit.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags '' -o croc - tar -czvf croc_${{ github.event.release.name }}_FreeBSD-64bit.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=freebsd GOARCH=arm64 go build -ldflags '' -o croc - tar -czvf croc_${{ github.event.release.name }}_FreeBSD-ARM64.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=netbsd GOARCH=386 go build -ldflags '' -o croc - tar -czvf croc_${{ github.event.release.name }}_NetBSD-32bit.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=netbsd GOARCH=amd64 go build -ldflags '' -o croc - tar -czvf croc_${{ github.event.release.name }}_NetBSD-64bit.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=netbsd GOARCH=arm64 go build -ldflags '' -o croc - tar -czvf croc_${{ github.event.release.name }}_NetBSD-ARM64.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=openbsd GOARCH=amd64 go build -ldflags '' -o croc - tar -czvf croc_${{ github.event.release.name }}_OpenBSD-64bit.tar.gz croc LICENSE - CGO_ENABLED=0 GOOS=openbsd GOARCH=arm64 go build -ldflags '' -o croc - tar -czvf croc_${{ github.event.release.name }}_OpenBSD-ARM64.tar.gz croc LICENSE - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: '1.20.7' # go1.20.8+ refuses to build go1.22 code... - - name: Build Windows 7 - run: | - go version - rm go.mod go.sum - go mod init github.com/schollz/croc/v10 - go mod tidy - CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags '-extldflags "-static"' -o croc.exe - zip croc_${{ github.event.release.name }}_Windows7-64bit.zip croc.exe - CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags '-extldflags "-static"' -o croc.exe - zip croc_${{ github.event.release.name }}_Windows7-32bit.zip croc.exe - - name: Create checksums.txt - run: | - touch croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_src.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_Windows-64bit.zip >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_Windows-32bit.zip >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_Windows-ARM.zip >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_Windows-ARM64.zip >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_Windows7-64bit.zip >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_Windows7-32bit.zip >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_Linux-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_Linux-32bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_Linux-ARM.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_Linux-ARMv5.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_Linux-ARM64.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_macOS-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_macOS-ARM64.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_DragonFlyBSD-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_FreeBSD-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_FreeBSD-ARM64.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_NetBSD-32bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_NetBSD-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_NetBSD-ARM64.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_OpenBSD-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - sha256sum croc_${{ github.event.release.name }}_OpenBSD-ARM64.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt - - name: Release - uses: softprops/action-gh-release@v2 - with: - files: | - croc_${{ github.event.release.name }}_checksums.txt - croc_${{ github.event.release.name }}_src.tar.gz - croc_${{ github.event.release.name }}_Windows-64bit.zip - croc_${{ github.event.release.name }}_Windows-32bit.zip - croc_${{ github.event.release.name }}_Windows-ARM.zip - croc_${{ github.event.release.name }}_Windows-ARM64.zip - croc_${{ github.event.release.name }}_Windows7-64bit.zip - croc_${{ github.event.release.name }}_Windows7-32bit.zip - croc_${{ github.event.release.name }}_Linux-64bit.tar.gz - croc_${{ github.event.release.name }}_Linux-32bit.tar.gz - croc_${{ github.event.release.name }}_Linux-ARM.tar.gz - croc_${{ github.event.release.name }}_Linux-ARMv5.tar.gz - croc_${{ github.event.release.name }}_Linux-ARM64.tar.gz - croc_${{ github.event.release.name }}_macOS-64bit.tar.gz - croc_${{ github.event.release.name }}_macOS-ARM64.tar.gz - croc_${{ github.event.release.name }}_DragonFlyBSD-64bit.tar.gz - croc_${{ github.event.release.name }}_FreeBSD-64bit.tar.gz - croc_${{ github.event.release.name }}_FreeBSD-ARM64.tar.gz - croc_${{ github.event.release.name }}_NetBSD-32bit.tar.gz - croc_${{ github.event.release.name }}_NetBSD-64bit.tar.gz - croc_${{ github.event.release.name }}_NetBSD-ARM64.tar.gz - croc_${{ github.event.release.name }}_OpenBSD-64bit.tar.gz - croc_${{ github.event.release.name }}_OpenBSD-ARM64.tar.gz + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '^1.23.5' + + - name: Prepare source tarball + run: | + git clone -b ${{ github.event.release.name }} --depth 1 https://github.com/schollz/croc croc-${{ github.event.release.name }} + cd croc-${{ github.event.release.name }} && go mod tidy && go mod vendor + cd .. && tar -czvf croc_${{ github.event.release.name }}_src.tar.gz croc-${{ github.event.release.name }} + + - name: Build files + run: | + CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags '-extldflags "-static"' -o croc.exe + zip croc_${{ github.event.release.name }}_Windows-64bit.zip croc.exe LICENSE + CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags '-extldflags "-static"' -o croc.exe + zip croc_${{ github.event.release.name }}_Windows-32bit.zip croc.exe LICENSE + CGO_ENABLED=0 GOOS=windows GOARCH=arm go build -ldflags '-extldflags "-static"' -o croc.exe + zip croc_${{ github.event.release.name }}_Windows-ARM.zip croc.exe LICENSE + CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build -ldflags '-extldflags "-static"' -o croc.exe + zip croc_${{ github.event.release.name }}_Windows-ARM64.zip croc.exe LICENSE + CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags '-extldflags "-static"' -o croc + tar -czvf croc_${{ github.event.release.name }}_Linux-64bit.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags '-extldflags "-static"' -o croc + tar -czvf croc_${{ github.event.release.name }}_Linux-32bit.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags '-extldflags "-static"' -o croc + tar -czvf croc_${{ github.event.release.name }}_Linux-ARM.tar.gz croc LICENSE + GOARM=5 CGO_ENABLED=0 GOOS=linux GOARCH=arm go build -ldflags '-extldflags "-static"' -o croc + tar -czvf croc_${{ github.event.release.name }}_Linux-ARMv5.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags '-extldflags "-static"' -o croc + tar -czvf croc_${{ github.event.release.name }}_Linux-ARM64.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags '-s -extldflags "-sectcreate __TEXT __info_plist Info.plist"' -o croc + tar -czvf croc_${{ github.event.release.name }}_macOS-64bit.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags '-s -extldflags "-sectcreate __TEXT __info_plist Info.plist"' -o croc + tar -czvf croc_${{ github.event.release.name }}_macOS-ARM64.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=dragonfly GOARCH=amd64 go build -ldflags '' -o croc + tar -czvf croc_${{ github.event.release.name }}_DragonFlyBSD-64bit.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags '' -o croc + tar -czvf croc_${{ github.event.release.name }}_FreeBSD-64bit.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=freebsd GOARCH=arm64 go build -ldflags '' -o croc + tar -czvf croc_${{ github.event.release.name }}_FreeBSD-ARM64.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=netbsd GOARCH=386 go build -ldflags '' -o croc + tar -czvf croc_${{ github.event.release.name }}_NetBSD-32bit.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=netbsd GOARCH=amd64 go build -ldflags '' -o croc + tar -czvf croc_${{ github.event.release.name }}_NetBSD-64bit.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=netbsd GOARCH=arm64 go build -ldflags '' -o croc + tar -czvf croc_${{ github.event.release.name }}_NetBSD-ARM64.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=openbsd GOARCH=amd64 go build -ldflags '' -o croc + tar -czvf croc_${{ github.event.release.name }}_OpenBSD-64bit.tar.gz croc LICENSE + CGO_ENABLED=0 GOOS=openbsd GOARCH=arm64 go build -ldflags '' -o croc + tar -czvf croc_${{ github.event.release.name }}_OpenBSD-ARM64.tar.gz croc LICENSE + + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: '1.20.7' + + - name: Build Windows 7 + run: | + go version + rm go.mod go.sum + go mod init github.com/schollz/croc/v10 + go mod tidy + CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags '-extldflags "-static"' -o croc.exe + zip croc_${{ github.event.release.name }}_Windows7-64bit.zip croc.exe + CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags '-extldflags "-static"' -o croc.exe + zip croc_${{ github.event.release.name }}_Windows7-32bit.zip croc.exe + + - name: Create checksums.txt + run: | + touch croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_src.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_Windows-64bit.zip >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_Windows-32bit.zip >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_Windows-ARM.zip >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_Windows-ARM64.zip >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_Windows7-64bit.zip >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_Windows7-32bit.zip >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_Linux-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_Linux-32bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_Linux-ARM.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_Linux-ARMv5.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_Linux-ARM64.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_macOS-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_macOS-ARM64.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_DragonFlyBSD-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_FreeBSD-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_FreeBSD-ARM64.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_NetBSD-32bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_NetBSD-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_NetBSD-ARM64.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_OpenBSD-64bit.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + sha256sum croc_${{ github.event.release.name }}_OpenBSD-ARM64.tar.gz >> croc_${{ github.event.release.name }}_checksums.txt + + - name: Release + uses: softprops/action-gh-release@v2 + with: + files: | + croc_${{ github.event.release.name }}_checksums.txt + croc_${{ github.event.release.name }}_src.tar.gz + croc_${{ github.event.release.name }}_Windows-64bit.zip + croc_${{ github.event.release.name }}_Windows-32bit.zip + croc_${{ github.event.release.name }}_Windows-ARM.zip + croc_${{ github.event.release.name }}_Windows-ARM64.zip + croc_${{ github.event.release.name }}_Windows7-64bit.zip + croc_${{ github.event.release.name }}_Windows7-32bit.zip + croc_${{ github.event.release.name }}_Linux-64bit.tar.gz + croc_${{ github.event.release.name }}_Linux-32bit.tar.gz + croc_${{ github.event.release.name }}_Linux-ARM.tar.gz + croc_${{ github.event.release.name }}_Linux-ARMv5.tar.gz + croc_${{ github.event.release.name }}_Linux-ARM64.tar.gz + croc_${{ github.event.release.name }}_macOS-64bit.tar.gz + croc_${{ github.event.release.name }}_macOS-ARM64.tar.gz + croc_${{ github.event.release.name }}_DragonFlyBSD-64bit.tar.gz + croc_${{ github.event.release.name }}_FreeBSD-64bit.tar.gz + croc_${{ github.event.release.name }}_FreeBSD-ARM64.tar.gz + croc_${{ github.event.release.name }}_NetBSD-32bit.tar.gz + croc_${{ github.event.release.name }}_NetBSD-64bit.tar.gz + croc_${{ github.event.release.name }}_NetBSD-ARM64.tar.gz + croc_${{ github.event.release.name }}_OpenBSD-64bit.tar.gz + croc_${{ github.event.release.name }}_OpenBSD-ARM64.tar.gz