Merge pull request #3334 from JoeKar/feature/action-nightly

nightly: Use GitHub Actions for scheduled builds
This commit is contained in:
Jöran Karl 2024-06-15 14:35:29 +02:00 committed by GitHub
commit ced6d9487a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 93 additions and 62 deletions

42
.github/workflows/nightly.yaml vendored Normal file
View File

@ -0,0 +1,42 @@
name: Nightly builds
on:
schedule:
- cron: '0 0 * * *'
jobs:
nightly:
strategy:
matrix:
go-version: [1.19.x]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Setup
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- name: Checkout
uses: actions/checkout@v4
with:
ref: master
- name: Build
run: tools/cross-compile.sh
- name: Tag
uses: rickstaa/action-create-tag@v1
with:
tag: nightly
force_push_tag: true
message: "Pre-release nightly"
- name: Publish
uses: softprops/action-gh-release@v2
with:
name: nightly
tag_name: nightly
files: binaries/*
prerelease: true
- name: Cleanup
run: rm -rf binaries

View File

@ -1,120 +1,109 @@
cd ..
#!/bin/sh
mkdir -p binaries
mkdir -p micro-$1
cp LICENSE micro-$1
cp README.md micro-$1
cp LICENSE-THIRD-PARTY micro-$1
cp assets/packaging/micro.1 micro-$1
cp assets/packaging/micro.desktop micro-$1
cp assets/micro-logo-mark.svg micro-$1/micro.svg
set -e
HASH="$(git rev-parse --short HEAD)"
VERSION="$(go run tools/build-version.go)"
DATE="$(go run tools/build-date.go)"
ADDITIONAL_GO_LINKER_FLAGS="$(go run tools/info-plist.go $VERSION)"
mkdir -p binaries
mkdir -p micro-$VERSION
cp LICENSE micro-$VERSION
cp README.md micro-$VERSION
cp LICENSE-THIRD-PARTY micro-$VERSION
cp assets/packaging/micro.1 micro-$VERSION
cp assets/packaging/micro.desktop micro-$VERSION
cp assets/micro-logo-mark.svg micro-$VERSION/micro.svg
create_artefact_generic()
{
mv micro micro-$VERSION/
tar -czf micro-$VERSION-$1.tgz micro-$VERSION
sha256sum micro-$VERSION-$1.tgz > micro-$VERSION-$1.tgz.sha
mv micro-$VERSION-$1.* binaries
rm micro-$VERSION/micro
}
create_artefact_windows()
{
mv micro.exe micro-$VERSION/
zip -r -q -T micro-$VERSION-$1.zip micro-$VERSION
sha256sum micro-$VERSION-$1.zip > micro-$VERSION-$1.zip.sha
mv micro-$VERSION-$1.* binaries
rm micro-$VERSION/micro.exe
}
# Mac
echo "OSX 64"
GOOS=darwin GOARCH=amd64 make build
mv micro micro-$1
tar -czf micro-$1-osx.tar.gz micro-$1
mv micro-$1-osx.tar.gz binaries
create_artefact_generic "osx"
# Mac ARM64
echo "MacOS ARM64"
GOOS=darwin GOARCH=arm64 make build
mv micro micro-$1
tar -czf micro-$1-macos-arm64.tar.gz micro-$1
mv micro-$1-macos-arm64.tar.gz binaries
create_artefact_generic "macos-arm64"
# Linux
echo "Linux 64"
GOOS=linux GOARCH=amd64 make build
./tools/package-deb.sh $1
mv micro-$1-amd64.deb binaries
mv micro micro-$1
tar -czf micro-$1-linux64.tar.gz micro-$1
mv micro-$1-linux64.tar.gz binaries
if ./tools/package-deb.sh $VERSION; then
sha256sum micro-$VERSION-amd64.deb > micro-$VERSION-amd64.deb.sha
mv micro-$VERSION-amd64.* binaries
fi
create_artefact_generic "linux64"
echo "Linux 64 fully static"
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 make build
mv micro micro-$1
tar -czf micro-$1-linux64-static.tar.gz micro-$1
mv micro-$1-linux64-static.tar.gz binaries
create_artefact_generic "linux64-static"
echo "Linux 32"
GOOS=linux GOARCH=386 make build
mv micro micro-$1
tar -czf micro-$1-linux32.tar.gz micro-$1
mv micro-$1-linux32.tar.gz binaries
create_artefact_generic "linux32"
echo "Linux ARM 32"
GOOS=linux GOARM=6 GOARCH=arm make build
mv micro micro-$1
tar -czf micro-$1-linux-arm.tar.gz micro-$1
mv micro-$1-linux-arm.tar.gz binaries
create_artefact_generic "linux-arm"
echo "Linux ARM 64"
GOOS=linux GOARCH=arm64 make build
mv micro micro-$1
tar -czf micro-$1-linux-arm64.tar.gz micro-$1
mv micro-$1-linux-arm64.tar.gz binaries
create_artefact_generic "linux-arm64"
# NetBSD
echo "NetBSD 64"
GOOS=netbsd GOARCH=amd64 make build
mv micro micro-$1
tar -czf micro-$1-netbsd64.tar.gz micro-$1
mv micro-$1-netbsd64.tar.gz binaries
create_artefact_generic "netbsd64"
echo "NetBSD 32"
GOOS=netbsd GOARCH=386 make build
mv micro micro-$1
tar -czf micro-$1-netbsd32.tar.gz micro-$1
mv micro-$1-netbsd32.tar.gz binaries
create_artefact_generic "netbsd32"
# OpenBSD
echo "OpenBSD 64"
GOOS=openbsd GOARCH=amd64 make build
mv micro micro-$1
tar -czf micro-$1-openbsd64.tar.gz micro-$1
mv micro-$1-openbsd64.tar.gz binaries
create_artefact_generic "openbsd64"
echo "OpenBSD 32"
GOOS=openbsd GOARCH=386 make build
mv micro micro-$1
tar -czf micro-$1-openbsd32.tar.gz micro-$1
mv micro-$1-openbsd32.tar.gz binaries
create_artefact_generic "openbsd32"
# FreeBSD
echo "FreeBSD 64"
GOOS=freebsd GOARCH=amd64 make build
mv micro micro-$1
tar -czf micro-$1-freebsd64.tar.gz micro-$1
mv micro-$1-freebsd64.tar.gz binaries
create_artefact_generic "freebsd64"
echo "FreeBSD 32"
GOOS=freebsd GOARCH=386 make build
mv micro micro-$1
tar -czf micro-$1-freebsd32.tar.gz micro-$1
mv micro-$1-freebsd32.tar.gz binaries
rm micro-$1/micro
create_artefact_generic "freebsd32"
# Windows
echo "Windows 64"
GOOS=windows GOARCH=amd64 make build
mv micro.exe micro-$1
zip -r -q -T micro-$1-win64.zip micro-$1
mv micro-$1-win64.zip binaries
create_artefact_windows "win64"
echo "Windows 32"
GOOS=windows GOARCH=386 make build
mv micro.exe micro-$1
zip -r -q -T micro-$1-win32.zip micro-$1
mv micro-$1-win32.zip binaries
create_artefact_windows "win32"
rm -rf micro-$1
rm -rf micro-$VERSION

View File

@ -1 +1 @@
fpm -s dir -t deb -p micro-$1-amd64.deb --name micro --license mit --version $1 --deb-recommends xclip --description "A modern and intuitive terminal-based text editor" --after-install ./assets/packaging/deb/micro.postinst --before-remove ./assets/packaging/deb/micro.prerm ./micro=/usr/bin/micro ./assets/packaging/micro.1=/usr/share/man/man1/micro.1
command -v fpm > /dev/null && fpm -s dir -t deb -p micro-$1-amd64.deb --name micro --license mit --version $1 --deb-recommends xclip --description "A modern and intuitive terminal-based text editor" --after-install ./assets/packaging/deb/micro.postinst --before-remove ./assets/packaging/deb/micro.prerm ./micro=/usr/bin/micro ./assets/packaging/micro.1=/usr/share/man/man1/micro.1