Commit b5d9de5

Anton Medvedev <anton@medv.io>
2025-12-01 21:14:25
Add build script for releases
1 parent 2630f5d
Changed files (1)
.github
scripts
.github/scripts/build.mjs
@@ -0,0 +1,33 @@
+$.verbose = true
+
+const goos = [
+  'linux',
+  'darwin',
+  'windows',
+]
+const goarch = [
+  'amd64',
+  'arm64',
+]
+
+const name = (GOOS, GOARCH) => `gitmal_${GOOS}_${GOARCH}` + (GOOS === 'windows' ? '.exe' : '')
+
+const resp = await fetch('https://api.github.com/repos/antonmedv/gitmal/releases/latest')
+const {tag_name: latest} = await resp.json()
+
+await $`go mod download`
+
+await Promise.all(
+  goos.flatMap(GOOS =>
+    goarch.map(GOARCH =>
+      $`GOOS=${GOOS} GOARCH=${GOARCH} go build -o ${name(GOOS, GOARCH)}`)))
+
+await Promise.all(
+  goos.flatMap(GOOS =>
+    goarch.map(GOARCH =>
+      $`gh release upload ${latest} ${name(GOOS, GOARCH)}`)))
+
+await Promise.all(
+  goos.flatMap(GOOS =>
+    goarch.map(GOARCH =>
+      $`rm ${name(GOOS, GOARCH)}`)))