ci: append version number to file name, fix tar.gz.gz archive.

This commit is contained in:
鲁树人 2024-10-21 07:59:40 +09:00
parent 89b629304e
commit b317b89ae9
3 changed files with 53 additions and 25 deletions

View File

@ -8,7 +8,10 @@ local CreateRelease() = {
settings: { settings: {
api_key: { from_secret: 'GITEA_API_KEY' }, api_key: { from_secret: 'GITEA_API_KEY' },
base_url: 'https://git.unlock-music.dev', base_url: 'https://git.unlock-music.dev',
files: 'dist/*', files: [
'um-*.tar.gz',
'um-*.zip',
],
checksum: 'sha256', checksum: 'sha256',
draft: true, draft: true,
title: '${DRONE_TAG}', title: '${DRONE_TAG}',
@ -19,14 +22,14 @@ local CreateRelease() = {
local StepGoBuild(GOOS, GOARCH) = { local StepGoBuild(GOOS, GOARCH) = {
local windows = GOOS == 'windows', local windows = GOOS == 'windows',
local archiveExt = if windows then 'zip' else 'tar.gz', 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.%s' % [GOOS, GOARCH, '$(git describe --tags --always)', archiveExt],
local archive = if windows then [ local archive = if windows then [
// Ensure zip is installed // Ensure zip is installed
'command -v zip >/dev/null || (apt update && apt install -y zip)', '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 -c -C $DIST_DIR um | gzip -9 > "%s"' % filepath,
], ],
name: 'go build %s/%s' % [GOOS, GOARCH], name: 'go build %s/%s' % [GOOS, GOARCH],
@ -46,7 +49,7 @@ local StepGoBuild(GOOS, GOARCH) = {
local StepUploadArtifact(GOOS, GOARCH) = { local StepUploadArtifact(GOOS, GOARCH) = {
local windows = GOOS == 'windows', local windows = GOOS == 'windows',
local archiveExt = if windows then 'zip' else 'tar.gz', local archiveExt = if windows then 'zip' else 'tar.gz',
local filename = 'um-%s-%s.%s' % [GOOS, GOARCH, archiveExt], local filename = 'um-%s-%s-%s.%s' % [GOOS, GOARCH, '$(git describe --tags --always)', archiveExt],
local filepath = 'dist/%s' % filename, local filepath = 'dist/%s' % filename,
local pkgname = '${DRONE_REPO_NAME}-build', local pkgname = '${DRONE_REPO_NAME}-build',
@ -123,6 +126,13 @@ local PipelineRelease() = {
StepGoBuild('windows', '386'), StepGoBuild('windows', '386'),
StepGoBuild('darwin', 'amd64'), StepGoBuild('darwin', 'amd64'),
StepGoBuild('darwin', 'arm64'), StepGoBuild('darwin', 'arm64'),
{
name: 'prepare root',
image: 'golang:1.22',
commands: [
'mv dist/*.tar.gz dist/*.zip ./',
],
},
CreateRelease(), CreateRelease(),
], ],
trigger: { trigger: {

View File

@ -17,7 +17,8 @@ steps:
- 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 -c -C $DIST_DIR um | gzip -9 > "dist/um-linux-amd64-$(git describe --tags
--always).tar.gz"
environment: environment:
GOARCH: amd64 GOARCH: amd64
GOOS: linux GOOS: linux
@ -25,9 +26,10 @@ steps:
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 "dist/um-linux-amd64.tar.gz" - curl --fail --include --user "um-release-bot:$GITEA_API_KEY" --upload-file "dist/um-linux-amd64-$(git
"$DRONE_GITEA_SERVER/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}/um-linux-amd64.tar.gz" describe --tags --always).tar.gz" "$DRONE_GITEA_SERVER/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}/um-linux-amd64-$(git
- sha256sum dist/um-linux-amd64.tar.gz describe --tags --always).tar.gz"
- sha256sum dist/um-linux-amd64-$(git describe --tags --always).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
@ -54,7 +56,7 @@ steps:
--always)" -o $DIST_DIR ./cmd/um --always)" -o $DIST_DIR ./cmd/um
- mkdir -p dist - mkdir -p dist
- command -v zip >/dev/null || (apt update && apt install -y zip) - command -v zip >/dev/null || (apt update && apt install -y zip)
- zip -9 -j -r "dist/um-windows-amd64.zip" $DIST_DIR - zip -9 -j -r "dist/um-windows-amd64-$(git describe --tags --always).zip" $DIST_DIR
environment: environment:
GOARCH: amd64 GOARCH: amd64
GOOS: windows GOOS: windows
@ -62,9 +64,10 @@ steps:
image: golang:1.22 image: golang:1.22
name: go build windows/amd64 name: go build windows/amd64
- commands: - commands:
- curl --fail --include --user "um-release-bot:$GITEA_API_KEY" --upload-file "dist/um-windows-amd64.zip" - curl --fail --include --user "um-release-bot:$GITEA_API_KEY" --upload-file "dist/um-windows-amd64-$(git
"$DRONE_GITEA_SERVER/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}/um-windows-amd64.zip" describe --tags --always).zip" "$DRONE_GITEA_SERVER/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}/um-windows-amd64-$(git
- sha256sum dist/um-windows-amd64.zip describe --tags --always).zip"
- sha256sum dist/um-windows-amd64-$(git describe --tags --always).zip
- 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
@ -90,7 +93,8 @@ steps:
- 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 -c -C $DIST_DIR um | gzip -9 > "dist/um-darwin-amd64-$(git describe --tags
--always).tar.gz"
environment: environment:
GOARCH: amd64 GOARCH: amd64
GOOS: darwin GOOS: darwin
@ -98,9 +102,10 @@ steps:
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 "dist/um-darwin-amd64.tar.gz" - curl --fail --include --user "um-release-bot:$GITEA_API_KEY" --upload-file "dist/um-darwin-amd64-$(git
"$DRONE_GITEA_SERVER/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}/um-darwin-amd64.tar.gz" describe --tags --always).tar.gz" "$DRONE_GITEA_SERVER/api/packages/${DRONE_REPO_NAMESPACE}/generic/${DRONE_REPO_NAME}-build/${DRONE_BUILD_NUMBER}/um-darwin-amd64-$(git
- sha256sum dist/um-darwin-amd64.tar.gz describe --tags --always).tar.gz"
- sha256sum dist/um-darwin-amd64-$(git describe --tags --always).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
@ -132,7 +137,8 @@ steps:
- 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 -c -C $DIST_DIR um | gzip -9 > "dist/um-linux-amd64-$(git describe --tags
--always).tar.gz"
environment: environment:
GOARCH: amd64 GOARCH: amd64
GOOS: linux GOOS: linux
@ -144,7 +150,8 @@ steps:
- 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 -c -C $DIST_DIR um | gzip -9 > "dist/um-linux-arm64-$(git describe --tags
--always).tar.gz"
environment: environment:
GOARCH: arm64 GOARCH: arm64
GOOS: linux GOOS: linux
@ -156,7 +163,7 @@ steps:
- 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 -c -C $DIST_DIR um | gzip -9 > "dist/um-linux-386-$(git describe --tags --always).tar.gz"
environment: environment:
GOARCH: "386" GOARCH: "386"
GOOS: linux GOOS: linux
@ -169,7 +176,7 @@ steps:
--always)" -o $DIST_DIR ./cmd/um --always)" -o $DIST_DIR ./cmd/um
- mkdir -p dist - mkdir -p dist
- command -v zip >/dev/null || (apt update && apt install -y zip) - command -v zip >/dev/null || (apt update && apt install -y zip)
- zip -9 -j -r "dist/um-windows-amd64.zip" $DIST_DIR - zip -9 -j -r "dist/um-windows-amd64-$(git describe --tags --always).zip" $DIST_DIR
environment: environment:
GOARCH: amd64 GOARCH: amd64
GOOS: windows GOOS: windows
@ -182,7 +189,7 @@ steps:
--always)" -o $DIST_DIR ./cmd/um --always)" -o $DIST_DIR ./cmd/um
- mkdir -p dist - mkdir -p dist
- command -v zip >/dev/null || (apt update && apt install -y zip) - command -v zip >/dev/null || (apt update && apt install -y zip)
- zip -9 -j -r "dist/um-windows-arm64.zip" $DIST_DIR - zip -9 -j -r "dist/um-windows-arm64-$(git describe --tags --always).zip" $DIST_DIR
environment: environment:
GOARCH: arm64 GOARCH: arm64
GOOS: windows GOOS: windows
@ -195,7 +202,7 @@ steps:
--always)" -o $DIST_DIR ./cmd/um --always)" -o $DIST_DIR ./cmd/um
- mkdir -p dist - mkdir -p dist
- command -v zip >/dev/null || (apt update && apt install -y zip) - command -v zip >/dev/null || (apt update && apt install -y zip)
- zip -9 -j -r "dist/um-windows-386.zip" $DIST_DIR - zip -9 -j -r "dist/um-windows-386-$(git describe --tags --always).zip" $DIST_DIR
environment: environment:
GOARCH: "386" GOARCH: "386"
GOOS: windows GOOS: windows
@ -207,7 +214,8 @@ steps:
- 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 -c -C $DIST_DIR um | gzip -9 > "dist/um-darwin-amd64-$(git describe --tags
--always).tar.gz"
environment: environment:
GOARCH: amd64 GOARCH: amd64
GOOS: darwin GOOS: darwin
@ -219,13 +227,18 @@ steps:
- 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-arm64.tar.gz" - tar -c -C $DIST_DIR um | gzip -9 > "dist/um-darwin-arm64-$(git describe --tags
--always).tar.gz"
environment: environment:
GOARCH: arm64 GOARCH: arm64
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/arm64 name: go build darwin/arm64
- commands:
- mv dist/*.tar.gz dist/*.zip ./
image: golang:1.22
name: prepare root
- image: plugins/gitea-release - image: plugins/gitea-release
name: create release name: create release
settings: settings:
@ -234,7 +247,9 @@ steps:
base_url: https://git.unlock-music.dev base_url: https://git.unlock-music.dev
checksum: sha256 checksum: sha256
draft: true draft: true
files: dist/* files:
- um-*.tar.gz
- um-*.zip
title: ${DRONE_TAG} title: ${DRONE_TAG}
trigger: trigger:
event: event:

3
.gitignore vendored
View File

@ -2,3 +2,6 @@
/dist /dist
*.exe *.exe
/um-*.tar.gz
/um-*.zip