Skip to content

Commit ced6d94

Browse files
authored
Merge pull request zyedidia#3334 from JoeKar/feature/action-nightly
nightly: Use GitHub Actions for scheduled builds
2 parents 352580a + c701ba6 commit ced6d94

File tree

3 files changed

+93
-62
lines changed

3 files changed

+93
-62
lines changed

.github/workflows/nightly.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Nightly builds
2+
on:
3+
schedule:
4+
- cron: '0 0 * * *'
5+
jobs:
6+
nightly:
7+
strategy:
8+
matrix:
9+
go-version: [1.19.x]
10+
os: [ubuntu-latest]
11+
runs-on: ${{ matrix.os }}
12+
steps:
13+
- name: Setup
14+
uses: actions/setup-go@v5
15+
with:
16+
go-version: ${{ matrix.go-version }}
17+
18+
- name: Checkout
19+
uses: actions/checkout@v4
20+
with:
21+
ref: master
22+
23+
- name: Build
24+
run: tools/cross-compile.sh
25+
26+
- name: Tag
27+
uses: rickstaa/action-create-tag@v1
28+
with:
29+
tag: nightly
30+
force_push_tag: true
31+
message: "Pre-release nightly"
32+
33+
- name: Publish
34+
uses: softprops/action-gh-release@v2
35+
with:
36+
name: nightly
37+
tag_name: nightly
38+
files: binaries/*
39+
prerelease: true
40+
41+
- name: Cleanup
42+
run: rm -rf binaries

tools/cross-compile.sh

Lines changed: 50 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,120 +1,109 @@
1-
cd ..
1+
#!/bin/sh
22

3-
mkdir -p binaries
4-
mkdir -p micro-$1
5-
6-
cp LICENSE micro-$1
7-
cp README.md micro-$1
8-
cp LICENSE-THIRD-PARTY micro-$1
9-
cp assets/packaging/micro.1 micro-$1
10-
cp assets/packaging/micro.desktop micro-$1
11-
cp assets/micro-logo-mark.svg micro-$1/micro.svg
3+
set -e
124

135
HASH="$(git rev-parse --short HEAD)"
146
VERSION="$(go run tools/build-version.go)"
157
DATE="$(go run tools/build-date.go)"
168
ADDITIONAL_GO_LINKER_FLAGS="$(go run tools/info-plist.go $VERSION)"
179

10+
mkdir -p binaries
11+
mkdir -p micro-$VERSION
12+
13+
cp LICENSE micro-$VERSION
14+
cp README.md micro-$VERSION
15+
cp LICENSE-THIRD-PARTY micro-$VERSION
16+
cp assets/packaging/micro.1 micro-$VERSION
17+
cp assets/packaging/micro.desktop micro-$VERSION
18+
cp assets/micro-logo-mark.svg micro-$VERSION/micro.svg
19+
20+
create_artefact_generic()
21+
{
22+
mv micro micro-$VERSION/
23+
tar -czf micro-$VERSION-$1.tgz micro-$VERSION
24+
sha256sum micro-$VERSION-$1.tgz > micro-$VERSION-$1.tgz.sha
25+
mv micro-$VERSION-$1.* binaries
26+
rm micro-$VERSION/micro
27+
}
28+
29+
create_artefact_windows()
30+
{
31+
mv micro.exe micro-$VERSION/
32+
zip -r -q -T micro-$VERSION-$1.zip micro-$VERSION
33+
sha256sum micro-$VERSION-$1.zip > micro-$VERSION-$1.zip.sha
34+
mv micro-$VERSION-$1.* binaries
35+
rm micro-$VERSION/micro.exe
36+
}
37+
1838
# Mac
1939
echo "OSX 64"
2040
GOOS=darwin GOARCH=amd64 make build
21-
mv micro micro-$1
22-
tar -czf micro-$1-osx.tar.gz micro-$1
23-
mv micro-$1-osx.tar.gz binaries
41+
create_artefact_generic "osx"
2442

2543
# Mac ARM64
2644
echo "MacOS ARM64"
2745
GOOS=darwin GOARCH=arm64 make build
28-
mv micro micro-$1
29-
tar -czf micro-$1-macos-arm64.tar.gz micro-$1
30-
mv micro-$1-macos-arm64.tar.gz binaries
46+
create_artefact_generic "macos-arm64"
3147

3248
# Linux
3349
echo "Linux 64"
3450
GOOS=linux GOARCH=amd64 make build
35-
./tools/package-deb.sh $1
36-
mv micro-$1-amd64.deb binaries
37-
38-
mv micro micro-$1
39-
tar -czf micro-$1-linux64.tar.gz micro-$1
40-
mv micro-$1-linux64.tar.gz binaries
51+
if ./tools/package-deb.sh $VERSION; then
52+
sha256sum micro-$VERSION-amd64.deb > micro-$VERSION-amd64.deb.sha
53+
mv micro-$VERSION-amd64.* binaries
54+
fi
55+
create_artefact_generic "linux64"
4156

4257
echo "Linux 64 fully static"
4358
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 make build
44-
mv micro micro-$1
45-
tar -czf micro-$1-linux64-static.tar.gz micro-$1
46-
mv micro-$1-linux64-static.tar.gz binaries
59+
create_artefact_generic "linux64-static"
4760

4861
echo "Linux 32"
4962
GOOS=linux GOARCH=386 make build
50-
mv micro micro-$1
51-
tar -czf micro-$1-linux32.tar.gz micro-$1
52-
mv micro-$1-linux32.tar.gz binaries
63+
create_artefact_generic "linux32"
5364

5465
echo "Linux ARM 32"
5566
GOOS=linux GOARM=6 GOARCH=arm make build
56-
mv micro micro-$1
57-
tar -czf micro-$1-linux-arm.tar.gz micro-$1
58-
mv micro-$1-linux-arm.tar.gz binaries
67+
create_artefact_generic "linux-arm"
5968

6069
echo "Linux ARM 64"
6170
GOOS=linux GOARCH=arm64 make build
62-
mv micro micro-$1
63-
tar -czf micro-$1-linux-arm64.tar.gz micro-$1
64-
mv micro-$1-linux-arm64.tar.gz binaries
71+
create_artefact_generic "linux-arm64"
6572

6673
# NetBSD
6774
echo "NetBSD 64"
6875
GOOS=netbsd GOARCH=amd64 make build
69-
mv micro micro-$1
70-
tar -czf micro-$1-netbsd64.tar.gz micro-$1
71-
mv micro-$1-netbsd64.tar.gz binaries
76+
create_artefact_generic "netbsd64"
7277

7378
echo "NetBSD 32"
7479
GOOS=netbsd GOARCH=386 make build
75-
mv micro micro-$1
76-
tar -czf micro-$1-netbsd32.tar.gz micro-$1
77-
mv micro-$1-netbsd32.tar.gz binaries
80+
create_artefact_generic "netbsd32"
7881

7982
# OpenBSD
8083
echo "OpenBSD 64"
8184
GOOS=openbsd GOARCH=amd64 make build
82-
mv micro micro-$1
83-
tar -czf micro-$1-openbsd64.tar.gz micro-$1
84-
mv micro-$1-openbsd64.tar.gz binaries
85+
create_artefact_generic "openbsd64"
8586

8687
echo "OpenBSD 32"
8788
GOOS=openbsd GOARCH=386 make build
88-
mv micro micro-$1
89-
tar -czf micro-$1-openbsd32.tar.gz micro-$1
90-
mv micro-$1-openbsd32.tar.gz binaries
89+
create_artefact_generic "openbsd32"
9190

9291
# FreeBSD
9392
echo "FreeBSD 64"
9493
GOOS=freebsd GOARCH=amd64 make build
95-
mv micro micro-$1
96-
tar -czf micro-$1-freebsd64.tar.gz micro-$1
97-
mv micro-$1-freebsd64.tar.gz binaries
94+
create_artefact_generic "freebsd64"
9895

9996
echo "FreeBSD 32"
10097
GOOS=freebsd GOARCH=386 make build
101-
mv micro micro-$1
102-
tar -czf micro-$1-freebsd32.tar.gz micro-$1
103-
mv micro-$1-freebsd32.tar.gz binaries
104-
105-
rm micro-$1/micro
98+
create_artefact_generic "freebsd32"
10699

107100
# Windows
108101
echo "Windows 64"
109102
GOOS=windows GOARCH=amd64 make build
110-
mv micro.exe micro-$1
111-
zip -r -q -T micro-$1-win64.zip micro-$1
112-
mv micro-$1-win64.zip binaries
103+
create_artefact_windows "win64"
113104

114105
echo "Windows 32"
115106
GOOS=windows GOARCH=386 make build
116-
mv micro.exe micro-$1
117-
zip -r -q -T micro-$1-win32.zip micro-$1
118-
mv micro-$1-win32.zip binaries
107+
create_artefact_windows "win32"
119108

120-
rm -rf micro-$1
109+
rm -rf micro-$VERSION

tools/package-deb.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +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
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

0 commit comments

Comments
 (0)