Compare commits
2 Commits
604ee6ed1b
...
57c1aa3e54
Author | SHA1 | Date | |
---|---|---|---|
57c1aa3e54 | |||
b0998d8c8a |
@ -17,11 +17,13 @@ local CreateRelease() = {
|
|||||||
|
|
||||||
|
|
||||||
local StepGoBuild(GOOS, GOARCH) = {
|
local StepGoBuild(GOOS, GOARCH) = {
|
||||||
local archiveExt = if GOOS == 'windows' then 'zip' else 'tar.gz',
|
local windows = GOOS == 'windows',
|
||||||
|
local archiveExt = if windows then 'zip' else 'tar.gz',
|
||||||
local filepath = 'dist/um-%s-%s.%s' % [GOOS, GOARCH, archiveExt],
|
local filepath = 'dist/um-%s-%s.%s' % [GOOS, GOARCH, archiveExt],
|
||||||
|
|
||||||
// run zip or tar command depending on GOOS been windows or other
|
local archive = if windows then [
|
||||||
local archive = if GOOS == 'windows' then [
|
// Ensure zip is installed
|
||||||
|
'command -v zip >/dev/null || (apt update && apt install -y zip)',
|
||||||
'zip -9 -j -r "%s" $DIST_DIR' % filepath,
|
'zip -9 -j -r "%s" $DIST_DIR' % filepath,
|
||||||
] else [
|
] else [
|
||||||
'tar -zc -C $DIST_DIR um | gzip -9 > "%s"' % filepath,
|
'tar -zc -C $DIST_DIR um | gzip -9 > "%s"' % filepath,
|
||||||
|
400
.drone.yml
400
.drone.yml
@ -1,225 +1,229 @@
|
|||||||
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: build linux/amd64
|
name: build linux/amd64
|
||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- git fetch --tags
|
- git fetch --tags
|
||||||
image: alpine/git
|
image: alpine/git
|
||||||
name: fetch tags
|
name: fetch tags
|
||||||
- commands:
|
- commands:
|
||||||
- go test -v ./...
|
- go test -v ./...
|
||||||
environment:
|
environment:
|
||||||
GOPROXY: https://goproxy.io,direct
|
GOPROXY: https://goproxy.io,direct
|
||||||
image: golang:1.22
|
image: golang:1.22
|
||||||
name: go test
|
name: go test
|
||||||
- commands:
|
- commands:
|
||||||
- DIST_DIR=$(mktemp -d)
|
- DIST_DIR=$(mktemp -d)
|
||||||
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
||||||
--always)" -o $DIST_DIR ./cmd/um
|
--always)" -o $DIST_DIR ./cmd/um
|
||||||
- mkdir -p dist
|
- mkdir -p dist
|
||||||
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-linux-amd64.tar.gz"
|
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-linux-amd64.tar.gz"
|
||||||
environment:
|
environment:
|
||||||
GOARCH: amd64
|
GOARCH: amd64
|
||||||
GOOS: linux
|
GOOS: linux
|
||||||
GOPROXY: https://goproxy.io,direct
|
GOPROXY: https://goproxy.io,direct
|
||||||
image: golang:1.22
|
image: golang:1.22
|
||||||
name: go build linux/amd64
|
name: go build linux/amd64
|
||||||
- commands:
|
- commands:
|
||||||
- curl --fail --include --user "um-release-bot:$GITEA_API_KEY" --upload-file
|
- curl --fail --include --user "um-release-bot:$GITEA_API_KEY" --upload-file "dist/um-linux-amd64.tar.gz"
|
||||||
"dist/um-linux-amd64.tar.gz" "$DRONE_GITEA_SERVER/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}/um-linux-amd64.tar.gz"
|
"$DRONE_GITEA_SERVER/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}/um-linux-amd64.tar.gz"
|
||||||
- sha256sum dist/um-linux-amd64.tar.gz
|
- sha256sum dist/um-linux-amd64.tar.gz
|
||||||
- echo $DRONE_GITEA_SERVER/${DRONE_REPO_NAMESPACE}/-/packages/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}
|
- echo $DRONE_GITEA_SERVER/${DRONE_REPO_NAMESPACE}/-/packages/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}
|
||||||
environment:
|
environment:
|
||||||
DRONE_GITEA_SERVER: https://git.unlock-music.dev
|
DRONE_GITEA_SERVER: https://git.unlock-music.dev
|
||||||
GITEA_API_KEY:
|
GITEA_API_KEY:
|
||||||
from_secret: GITEA_API_KEY
|
from_secret: GITEA_API_KEY
|
||||||
image: golang:1.22
|
image: golang:1.22
|
||||||
name: upload artifact
|
name: upload artifact
|
||||||
trigger:
|
trigger:
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
- pull_request
|
- pull_request
|
||||||
type: docker
|
type: docker
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: build windows/amd64
|
name: build windows/amd64
|
||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- git fetch --tags
|
- git fetch --tags
|
||||||
image: alpine/git
|
image: alpine/git
|
||||||
name: fetch tags
|
name: fetch tags
|
||||||
- commands:
|
- commands:
|
||||||
- DIST_DIR=$(mktemp -d)
|
- DIST_DIR=$(mktemp -d)
|
||||||
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
||||||
--always)" -o $DIST_DIR ./cmd/um
|
--always)" -o $DIST_DIR ./cmd/um
|
||||||
- mkdir -p dist
|
- mkdir -p dist
|
||||||
- zip -9 -j -r "dist/um-windows-amd64.zip" $DIST_DIR
|
- command -v zip >/dev/null || (apt update && apt install -y zip)
|
||||||
environment:
|
- zip -9 -j -r "dist/um-windows-amd64.zip" $DIST_DIR
|
||||||
GOARCH: amd64
|
environment:
|
||||||
GOOS: windows
|
GOARCH: amd64
|
||||||
GOPROXY: https://goproxy.io,direct
|
GOOS: windows
|
||||||
image: golang:1.22
|
GOPROXY: https://goproxy.io,direct
|
||||||
name: go build windows/amd64
|
image: golang:1.22
|
||||||
- commands:
|
name: go build windows/amd64
|
||||||
- curl --fail --include --user "um-release-bot:$GITEA_API_KEY" --upload-file
|
- commands:
|
||||||
"dist/um-windows-amd64.tar.gz" "$DRONE_GITEA_SERVER/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}/um-windows-amd64.tar.gz"
|
- curl --fail --include --user "um-release-bot:$GITEA_API_KEY" --upload-file "dist/um-windows-amd64.tar.gz"
|
||||||
- sha256sum dist/um-windows-amd64.tar.gz
|
"$DRONE_GITEA_SERVER/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}/um-windows-amd64.tar.gz"
|
||||||
- echo $DRONE_GITEA_SERVER/${DRONE_REPO_NAMESPACE}/-/packages/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}
|
- sha256sum dist/um-windows-amd64.tar.gz
|
||||||
environment:
|
- echo $DRONE_GITEA_SERVER/${DRONE_REPO_NAMESPACE}/-/packages/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}
|
||||||
DRONE_GITEA_SERVER: https://git.unlock-music.dev
|
environment:
|
||||||
GITEA_API_KEY:
|
DRONE_GITEA_SERVER: https://git.unlock-music.dev
|
||||||
from_secret: GITEA_API_KEY
|
GITEA_API_KEY:
|
||||||
image: golang:1.22
|
from_secret: GITEA_API_KEY
|
||||||
name: upload artifact
|
image: golang:1.22
|
||||||
|
name: upload artifact
|
||||||
trigger:
|
trigger:
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
- pull_request
|
- pull_request
|
||||||
type: docker
|
type: docker
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: build darwin/amd64
|
name: build darwin/amd64
|
||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- git fetch --tags
|
- git fetch --tags
|
||||||
image: alpine/git
|
image: alpine/git
|
||||||
name: fetch tags
|
name: fetch tags
|
||||||
- commands:
|
- commands:
|
||||||
- DIST_DIR=$(mktemp -d)
|
- DIST_DIR=$(mktemp -d)
|
||||||
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
||||||
--always)" -o $DIST_DIR ./cmd/um
|
--always)" -o $DIST_DIR ./cmd/um
|
||||||
- mkdir -p dist
|
- mkdir -p dist
|
||||||
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-darwin-amd64.tar.gz"
|
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-darwin-amd64.tar.gz"
|
||||||
environment:
|
environment:
|
||||||
GOARCH: amd64
|
GOARCH: amd64
|
||||||
GOOS: darwin
|
GOOS: darwin
|
||||||
GOPROXY: https://goproxy.io,direct
|
GOPROXY: https://goproxy.io,direct
|
||||||
image: golang:1.22
|
image: golang:1.22
|
||||||
name: go build darwin/amd64
|
name: go build darwin/amd64
|
||||||
- commands:
|
- commands:
|
||||||
- curl --fail --include --user "um-release-bot:$GITEA_API_KEY" --upload-file
|
- curl --fail --include --user "um-release-bot:$GITEA_API_KEY" --upload-file "dist/um-darwin-amd64.tar.gz"
|
||||||
"dist/um-darwin-amd64.tar.gz" "$DRONE_GITEA_SERVER/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}/um-darwin-amd64.tar.gz"
|
"$DRONE_GITEA_SERVER/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}/um-darwin-amd64.tar.gz"
|
||||||
- sha256sum dist/um-darwin-amd64.tar.gz
|
- sha256sum dist/um-darwin-amd64.tar.gz
|
||||||
- echo $DRONE_GITEA_SERVER/${DRONE_REPO_NAMESPACE}/-/packages/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}
|
- echo $DRONE_GITEA_SERVER/${DRONE_REPO_NAMESPACE}/-/packages/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}
|
||||||
environment:
|
environment:
|
||||||
DRONE_GITEA_SERVER: https://git.unlock-music.dev
|
DRONE_GITEA_SERVER: https://git.unlock-music.dev
|
||||||
GITEA_API_KEY:
|
GITEA_API_KEY:
|
||||||
from_secret: GITEA_API_KEY
|
from_secret: GITEA_API_KEY
|
||||||
image: golang:1.22
|
image: golang:1.22
|
||||||
name: upload artifact
|
name: upload artifact
|
||||||
trigger:
|
trigger:
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
- pull_request
|
- pull_request
|
||||||
type: docker
|
type: docker
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
name: release
|
name: release
|
||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- git fetch --tags
|
- git fetch --tags
|
||||||
image: alpine/git
|
image: alpine/git
|
||||||
name: fetch tags
|
name: fetch tags
|
||||||
- commands:
|
- commands:
|
||||||
- go test -v ./...
|
- go test -v ./...
|
||||||
environment:
|
environment:
|
||||||
GOPROXY: https://goproxy.io,direct
|
GOPROXY: https://goproxy.io,direct
|
||||||
image: golang:1.22
|
image: golang:1.22
|
||||||
name: go test
|
name: go test
|
||||||
- commands:
|
- commands:
|
||||||
- DIST_DIR=$(mktemp -d)
|
- DIST_DIR=$(mktemp -d)
|
||||||
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
||||||
--always)" -o $DIST_DIR ./cmd/um
|
--always)" -o $DIST_DIR ./cmd/um
|
||||||
- mkdir -p dist
|
- mkdir -p dist
|
||||||
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-linux-amd64.tar.gz"
|
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-linux-amd64.tar.gz"
|
||||||
environment:
|
environment:
|
||||||
GOARCH: amd64
|
GOARCH: amd64
|
||||||
GOOS: linux
|
GOOS: linux
|
||||||
GOPROXY: https://goproxy.io,direct
|
GOPROXY: https://goproxy.io,direct
|
||||||
image: golang:1.22
|
image: golang:1.22
|
||||||
name: go build linux/amd64
|
name: go build linux/amd64
|
||||||
- commands:
|
- commands:
|
||||||
- DIST_DIR=$(mktemp -d)
|
- DIST_DIR=$(mktemp -d)
|
||||||
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
||||||
--always)" -o $DIST_DIR ./cmd/um
|
--always)" -o $DIST_DIR ./cmd/um
|
||||||
- mkdir -p dist
|
- mkdir -p dist
|
||||||
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-linux-arm64.tar.gz"
|
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-linux-arm64.tar.gz"
|
||||||
environment:
|
environment:
|
||||||
GOARCH: arm64
|
GOARCH: arm64
|
||||||
GOOS: linux
|
GOOS: linux
|
||||||
GOPROXY: https://goproxy.io,direct
|
GOPROXY: https://goproxy.io,direct
|
||||||
image: golang:1.22
|
image: golang:1.22
|
||||||
name: go build linux/arm64
|
name: go build linux/arm64
|
||||||
- commands:
|
- commands:
|
||||||
- DIST_DIR=$(mktemp -d)
|
- DIST_DIR=$(mktemp -d)
|
||||||
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
||||||
--always)" -o $DIST_DIR ./cmd/um
|
--always)" -o $DIST_DIR ./cmd/um
|
||||||
- mkdir -p dist
|
- mkdir -p dist
|
||||||
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-linux-386.tar.gz"
|
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-linux-386.tar.gz"
|
||||||
environment:
|
environment:
|
||||||
GOARCH: '386'
|
GOARCH: "386"
|
||||||
GOOS: linux
|
GOOS: linux
|
||||||
GOPROXY: https://goproxy.io,direct
|
GOPROXY: https://goproxy.io,direct
|
||||||
image: golang:1.22
|
image: golang:1.22
|
||||||
name: go build linux/386
|
name: go build linux/386
|
||||||
- commands:
|
- commands:
|
||||||
- DIST_DIR=$(mktemp -d)
|
- DIST_DIR=$(mktemp -d)
|
||||||
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
||||||
--always)" -o $DIST_DIR ./cmd/um
|
--always)" -o $DIST_DIR ./cmd/um
|
||||||
- mkdir -p dist
|
- mkdir -p dist
|
||||||
- zip -9 -j -r "dist/um-windows-amd64.zip" $DIST_DIR
|
- command -v zip >/dev/null || (apt update && apt install -y zip)
|
||||||
environment:
|
- zip -9 -j -r "dist/um-windows-amd64.zip" $DIST_DIR
|
||||||
GOARCH: amd64
|
environment:
|
||||||
GOOS: windows
|
GOARCH: amd64
|
||||||
GOPROXY: https://goproxy.io,direct
|
GOOS: windows
|
||||||
image: golang:1.22
|
GOPROXY: https://goproxy.io,direct
|
||||||
name: go build windows/amd64
|
image: golang:1.22
|
||||||
- commands:
|
name: go build windows/amd64
|
||||||
- DIST_DIR=$(mktemp -d)
|
- commands:
|
||||||
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
- DIST_DIR=$(mktemp -d)
|
||||||
--always)" -o $DIST_DIR ./cmd/um
|
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
||||||
- mkdir -p dist
|
--always)" -o $DIST_DIR ./cmd/um
|
||||||
- zip -9 -j -r "dist/um-windows-386.zip" $DIST_DIR
|
- mkdir -p dist
|
||||||
environment:
|
- command -v zip >/dev/null || (apt update && apt install -y zip)
|
||||||
GOARCH: '386'
|
- zip -9 -j -r "dist/um-windows-386.zip" $DIST_DIR
|
||||||
GOOS: windows
|
environment:
|
||||||
GOPROXY: https://goproxy.io,direct
|
GOARCH: "386"
|
||||||
image: golang:1.22
|
GOOS: windows
|
||||||
name: go build windows/386
|
GOPROXY: https://goproxy.io,direct
|
||||||
- commands:
|
image: golang:1.22
|
||||||
- DIST_DIR=$(mktemp -d)
|
name: go build windows/386
|
||||||
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
- commands:
|
||||||
--always)" -o $DIST_DIR ./cmd/um
|
- DIST_DIR=$(mktemp -d)
|
||||||
- mkdir -p dist
|
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
||||||
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-darwin-amd64.tar.gz"
|
--always)" -o $DIST_DIR ./cmd/um
|
||||||
environment:
|
- mkdir -p dist
|
||||||
GOARCH: amd64
|
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-darwin-amd64.tar.gz"
|
||||||
GOOS: darwin
|
environment:
|
||||||
GOPROXY: https://goproxy.io,direct
|
GOARCH: amd64
|
||||||
image: golang:1.22
|
GOOS: darwin
|
||||||
name: go build darwin/amd64
|
GOPROXY: https://goproxy.io,direct
|
||||||
- commands:
|
image: golang:1.22
|
||||||
- DIST_DIR=$(mktemp -d)
|
name: go build darwin/amd64
|
||||||
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
- commands:
|
||||||
--always)" -o $DIST_DIR ./cmd/um
|
- DIST_DIR=$(mktemp -d)
|
||||||
- mkdir -p dist
|
- go build -v -trimpath -ldflags="-w -s -X main.AppVersion=$(git describe --tags
|
||||||
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-darwin-arm64.tar.gz"
|
--always)" -o $DIST_DIR ./cmd/um
|
||||||
environment:
|
- mkdir -p dist
|
||||||
GOARCH: arm64
|
- tar -zc -C $DIST_DIR um | gzip -9 > "dist/um-darwin-arm64.tar.gz"
|
||||||
GOOS: darwin
|
environment:
|
||||||
GOPROXY: https://goproxy.io,direct
|
GOARCH: arm64
|
||||||
image: golang:1.22
|
GOOS: darwin
|
||||||
name: go build darwin/arm64
|
GOPROXY: https://goproxy.io,direct
|
||||||
- image: plugins/gitea-release
|
image: golang:1.22
|
||||||
name: create release
|
name: go build darwin/arm64
|
||||||
settings:
|
- image: plugins/gitea-release
|
||||||
api_key:
|
name: create release
|
||||||
from_secret: GITEA_API_KEY
|
settings:
|
||||||
base_url: https://git.unlock-music.dev
|
api_key:
|
||||||
checksum: sha256
|
from_secret: GITEA_API_KEY
|
||||||
draft: true
|
base_url: https://git.unlock-music.dev
|
||||||
files: dist/*
|
checksum: sha256
|
||||||
title: ${DRONE_TAG}
|
draft: true
|
||||||
|
files: dist/*
|
||||||
|
title: ${DRONE_TAG}
|
||||||
trigger:
|
trigger:
|
||||||
event:
|
event:
|
||||||
- tag
|
- tag
|
||||||
type: docker
|
type: docker
|
||||||
|
14
README.md
14
README.md
@ -28,16 +28,10 @@ Original: Web Edition https://git.unlock-music.dev/um/web
|
|||||||
|
|
||||||
## Update CI pipeline
|
## Update CI pipeline
|
||||||
|
|
||||||
Ensure `jsonnet` and `yq` is installed.
|
1. Install [Drone CI binary](https://docs.drone.io/cli/install/)
|
||||||
|
2. Edit `.drone.jsonnet`
|
||||||
```sh
|
3. Update drone CI pipeline:
|
||||||
# Debian / Ubuntu etc:
|
|
||||||
sudo apt install jsonnet yq
|
|
||||||
```
|
|
||||||
|
|
||||||
1. Edit `.drone.jsonnet`
|
|
||||||
2. Update drone CI pipeline:
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
jsonnet -y .drone.jsonnet | yq -y > .drone.yml
|
drone jsonnet --format --stream
|
||||||
```
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user