name: Make release on: release: types: [created] workflow_dispatch: permissions: contents: write jobs: build: runs-on: ubuntu-latest steps: - name: Checkout project uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v4 with: go-version: '1.20' - name: Build Windows 7 run: | 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: Setup Go uses: actions/setup-go@v4 with: go-version: '1.21' - 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 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: 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-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@v1 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-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