Compare commits
31 Commits
v0.0.0-202
...
main
Author | SHA1 | Date |
---|---|---|
徐晓伟 | da810b6307 | |
徐晓伟 | c81ef04d6f | |
徐晓伟 | 6d78de1aa0 | |
徐晓伟 | f6aabd5cc6 | |
徐晓伟 | d559f0d864 | |
徐晓伟 | fee4fb08a7 | |
徐晓伟 | 35dabb81b3 | |
徐晓伟 | ea11b796e1 | |
徐晓伟 | caa84c2068 | |
徐晓伟 | 24c0ee993d | |
徐晓伟 | 9d07b27741 | |
徐晓伟 | 01aa03ace4 | |
徐晓伟 | cb2ab5233c | |
徐晓伟 | 39e00c69ba | |
徐晓伟 | 62a99a9508 | |
徐晓伟 | 8e4320f36d | |
徐晓伟 | 9bb887713f | |
徐晓伟 | bc08797cb7 | |
徐晓伟 | 136d233b88 | |
徐晓伟 | 9b79bf6a94 | |
徐晓伟 | e1b20d9d5c | |
徐晓伟 | 444032ecb1 | |
徐晓伟 | b070dfbf64 | |
徐晓伟 | a408baf02b | |
徐晓伟 | f18c6c58e5 | |
徐晓伟 | 39c357e871 | |
徐晓伟 | f40b96c0fd | |
徐晓伟 | 337791b670 | |
徐晓伟 | 73e996d5fa | |
徐晓伟 | 5fc69d9a26 | |
徐晓伟 | 899817d5b6 |
|
@ -0,0 +1,54 @@
|
|||
version: 2
|
||||
name: go-push
|
||||
description: Go Push
|
||||
global:
|
||||
concurrent: 1
|
||||
trigger:
|
||||
webhook: gitlink@1.0.0
|
||||
event:
|
||||
- ref: push
|
||||
ruleset-operator: AND
|
||||
workflow:
|
||||
- ref: start
|
||||
name: 开始
|
||||
task: start
|
||||
- ref: git_clone_0
|
||||
name: git clone
|
||||
task: git_clone@1.2.9
|
||||
input:
|
||||
remote_url: '"https://gitlink.org.cn/xuxiaowei-com-cn/cicd-release.git"'
|
||||
ref: '"refs/heads/main"'
|
||||
commit_id: '""'
|
||||
depth: 1
|
||||
needs:
|
||||
- start
|
||||
- ref: build_0
|
||||
name: build
|
||||
image: registry.cn-qingdao.aliyuncs.com/xuxiaowei/public:golang_1.21
|
||||
env:
|
||||
WORKSPACE: git_clone_0.git_path
|
||||
script:
|
||||
- cd $WORKSPACE
|
||||
- go version
|
||||
- go env -w GOPROXY=https://goproxy.cn,direct
|
||||
#- go env -w GOPROXY=https://mirrors.aliyun.com/goproxy,direct
|
||||
- go mod download
|
||||
- go test ./... -v
|
||||
- go run main.go
|
||||
- go build -o buildinfo/buildinfo buildinfo/buildinfo.go
|
||||
- GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=windows/amd64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-windows-amd64.exe .
|
||||
- GOOS=windows GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=windows/arm64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-windows-arm64.exe .
|
||||
- GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/amd64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-linux-amd64 .
|
||||
- GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/arm64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-linux-arm64 .
|
||||
- GOOS=linux GOARCH=loong64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=darwin/arm64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-darwin-arm64 .
|
||||
- GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=darwin/amd64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-darwin-amd64 .
|
||||
- GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=darwin/arm64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-darwin-arm64 .
|
||||
- ./cicd-release-linux-amd64 --version
|
||||
- ./cicd-release-linux-amd64
|
||||
needs:
|
||||
- git_clone_0
|
||||
- ref: end
|
||||
name: 结束
|
||||
task: end
|
||||
needs:
|
||||
- build_0
|
|
@ -35,10 +35,10 @@ jobs:
|
|||
# 获取所有的代码历史记录,包括分支和标签
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Set up Go
|
||||
uses: actions/setup-go@v4
|
||||
with:
|
||||
go-version: '1.20'
|
||||
#- name: Set up Go
|
||||
# uses: actions/setup-go@v4
|
||||
# with:
|
||||
# go-version: '1.20'
|
||||
|
||||
- name: Set Current Date ENV
|
||||
run: |
|
||||
|
@ -77,12 +77,13 @@ jobs:
|
|||
- name: Build
|
||||
run: |
|
||||
go build -o buildinfo/buildinfo buildinfo/buildinfo.go
|
||||
GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=windows/amd64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-windows-amd64.exe .
|
||||
GOOS=windows GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=windows/arm64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-windows-arm64.exe .
|
||||
GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/amd64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-linux-amd64 .
|
||||
GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/arm64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-linux-arm64 .
|
||||
GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=darwin/amd64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-darwin-amd64 .
|
||||
GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=darwin/arm64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-darwin-arm64 .
|
||||
GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=windows/amd64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-windows-amd64.exe .
|
||||
GOOS=windows GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=windows/arm64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-windows-arm64.exe .
|
||||
GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/amd64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-linux-amd64 .
|
||||
GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/arm64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-linux-arm64 .
|
||||
GOOS=linux GOARCH=loong64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/arm64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-loong64 .
|
||||
GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=darwin/amd64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-darwin-amd64 .
|
||||
GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$GITHUB_REF_NAME -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=darwin/arm64 -X main.InstanceUrl=$GITHUB_SERVER_URL -X main.CiPipelineId=$GITHUB_RUN_ID -X main.CiJobId=$GITHUB_RUN_NUMBER" -trimpath -o cicd-release-darwin-arm64 .
|
||||
./cicd-release-linux-amd64 --version
|
||||
./cicd-release-linux-amd64
|
||||
|
||||
|
@ -100,6 +101,7 @@ jobs:
|
|||
cicd-release-linux-arm64
|
||||
cicd-release-darwin-amd64
|
||||
cicd-release-darwin-arm64
|
||||
cicd-release-loong64
|
||||
|
||||
|
||||
release-github:
|
||||
|
@ -130,7 +132,7 @@ jobs:
|
|||
|
||||
- name: Release GitHub
|
||||
run: |
|
||||
./cicd-release-linux-amd64 pre-release github --release-name=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --tag=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --auto-create-tag --github-repository=$GITHUB_REPOSITORY --github-username=$GITHUB_ACTOR --github-token=${{ secrets.PRIVATE_GITHUB_TOKEN }} --release-body=${{ needs.build.outputs.RELEASE_BODY }} --artifacts=cicd-release-windows-amd64.exe --artifacts=cicd-release-windows-arm64.exe --artifacts=cicd-release-linux-amd64 --artifacts=cicd-release-linux-arm64 --artifacts=cicd-release-darwin-amd64 --artifacts=cicd-release-darwin-arm64
|
||||
./cicd-release-linux-amd64 pre-release github --release-name=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --tag=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --auto-create-tag --github-repository=$GITHUB_REPOSITORY --github-username=$GITHUB_ACTOR --github-token=${{ secrets.PRIVATE_GITHUB_TOKEN }} --release-body=${{ needs.build.outputs.RELEASE_BODY }} --artifacts=cicd-release-windows-amd64.exe --artifacts=cicd-release-windows-arm64.exe --artifacts=cicd-release-linux-amd64 --artifacts=cicd-release-linux-arm64 --artifacts=cicd-release-darwin-amd64 --artifacts=cicd-release-darwin-arm64 --artifacts=cicd-release-loong64
|
||||
|
||||
release-gitlab:
|
||||
needs: build
|
||||
|
@ -160,7 +162,14 @@ jobs:
|
|||
|
||||
- name: Release GitLab
|
||||
run: |
|
||||
./cicd-release-linux-amd64 pre-release gitlab --release-name=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --tag=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --auto-create-tag --gitlab-repository=$GITHUB_REPOSITORY --gitlab-username=$GITHUB_ACTOR --gitlab-token=${{ secrets.PRIVATE_GITLAB_TOKEN }} --release-body=${{ needs.build.outputs.RELEASE_BODY }} --package-name=cicd-release --artifacts=cicd-release-windows-amd64.exe --artifacts=cicd-release-windows-arm64.exe --artifacts=cicd-release-linux-amd64 --artifacts=cicd-release-linux-arm64 --artifacts=cicd-release-darwin-amd64 --artifacts=cicd-release-darwin-arm64
|
||||
./cicd-release-linux-amd64 pre-release gitlab --release-name=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --tag=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --auto-create-tag --gitlab-repository=$GITHUB_REPOSITORY --gitlab-username=$GITHUB_ACTOR --gitlab-token=${{ secrets.PRIVATE_GITLAB_TOKEN }} --release-body=${{ needs.build.outputs.RELEASE_BODY }} --package-name=cicd-release --artifacts=cicd-release-windows-amd64.exe --artifacts=cicd-release-windows-arm64.exe --artifacts=cicd-release-linux-amd64 --artifacts=cicd-release-linux-arm64 --artifacts=cicd-release-darwin-amd64 --artifacts=cicd-release-darwin-arm64 --artifacts=cicd-release-loong64 --gitlab-export-assets-file-name=gitlab-release-assets.json
|
||||
|
||||
- name: Upload Artifacts(gitlab-release-assets.json)
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: gitlab-release-assets
|
||||
path: |
|
||||
gitlab-release-assets.json
|
||||
|
||||
release-gitlink:
|
||||
needs: build
|
||||
|
@ -190,10 +199,19 @@ jobs:
|
|||
|
||||
- name: Release GitLink
|
||||
run: |
|
||||
./cicd-release-linux-amd64 pre-release gitlink --release-name=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --tag=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --auto-create-tag --gitlink-repository=$GITHUB_REPOSITORY --gitlink-username=${{ secrets.PRIVATE_GITLINK_USERNAME }} --gitlink-token=${{ secrets.PRIVATE_GITLINK_TOKEN }} --release-body=${{ needs.build.outputs.RELEASE_BODY }} --artifacts=cicd-release-windows-amd64.exe --artifacts=cicd-release-windows-arm64.exe --artifacts=cicd-release-linux-amd64 --artifacts=cicd-release-linux-arm64 --artifacts=cicd-release-darwin-amd64 --artifacts=cicd-release-darwin-arm64 --gitlink-cookie=${{ secrets.PRIVATE_GITLINK_COOKIE }}
|
||||
./cicd-release-linux-amd64 pre-release gitlink --release-name=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --tag=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --auto-create-tag --gitlink-repository=$GITHUB_REPOSITORY --gitlink-username=${{ secrets.PRIVATE_GITLINK_USERNAME }} --gitlink-token=${{ secrets.PRIVATE_GITLINK_TOKEN }} --release-body=${{ needs.build.outputs.RELEASE_BODY }} --artifacts=cicd-release-windows-amd64.exe --artifacts=cicd-release-windows-arm64.exe --artifacts=cicd-release-linux-amd64 --artifacts=cicd-release-linux-arm64 --artifacts=cicd-release-darwin-amd64 --artifacts=cicd-release-darwin-arm64 --artifacts=cicd-release-loong64 --gitlink-cookie=${{ secrets.PRIVATE_GITLINK_COOKIE }} --gitlink-export-assets-file-name=gitlink-release-assets.json
|
||||
|
||||
release-jihulab:
|
||||
needs: build
|
||||
- name: Upload Artifacts(gitlink-release-assets.json)
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: gitlink-release-assets
|
||||
path: |
|
||||
gitlink-release-assets.json
|
||||
|
||||
release-framagit:
|
||||
needs:
|
||||
- build
|
||||
- release-gitlab
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
|
@ -218,21 +236,20 @@ jobs:
|
|||
- name: ls -l
|
||||
run: ls -l
|
||||
|
||||
- name: Release JiHuLab
|
||||
run: |
|
||||
./cicd-release-linux-amd64 pre-release gitlab --release-name=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --tag=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --auto-create-tag --gitlab-repository=$GITHUB_REPOSITORY --gitlab-username=$GITHUB_ACTOR --gitlab-token=${{ secrets.PRIVATE_JIHULAB_TOKEN }} --release-body=${{ needs.build.outputs.RELEASE_BODY }} --package-name=cicd-release --artifacts=cicd-release-windows-amd64.exe --artifacts=cicd-release-windows-arm64.exe --artifacts=cicd-release-linux-amd64 --artifacts=cicd-release-linux-arm64 --artifacts=cicd-release-darwin-amd64 --artifacts=cicd-release-darwin-arm64 --gitlab-instance=https://jihulab.com --gitlab-export-assets-file-name=cicd-release-assets.json
|
||||
|
||||
- name: Upload Artifacts(cicd-release-assets.json)
|
||||
uses: actions/upload-artifact@v3
|
||||
- name: Download Artifacts(gitlab-release-assets.json)
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: cicd-release-assets
|
||||
path: |
|
||||
cicd-release-assets.json
|
||||
name: gitlab-release-assets
|
||||
path: .
|
||||
|
||||
- name: Release FramaGit
|
||||
run: |
|
||||
./cicd-release-linux-amd64 pre-release gitlab --gitlab-instance=https://framagit.org --release-name=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --tag=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --auto-create-tag --gitlab-repository=$GITHUB_REPOSITORY --gitlab-username=xuxiaowei --gitlab-token=${{ secrets.PRIVATE_FRAMAGIT_TOKEN }} --release-body=${{ needs.build.outputs.RELEASE_BODY }} --gitlab-import-assets-file-name=gitlab-release-assets.json
|
||||
|
||||
release-gitee:
|
||||
needs:
|
||||
- build
|
||||
- release-jihulab
|
||||
- release-gitlink
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
|
@ -257,12 +274,12 @@ jobs:
|
|||
- name: ls -l
|
||||
run: ls -l
|
||||
|
||||
- name: Download Artifacts(cicd-release-assets.json)
|
||||
- name: Download Artifacts(gitlink-release-assets.json)
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: cicd-release-assets
|
||||
name: gitlink-release-assets
|
||||
path: .
|
||||
|
||||
- name: Release Gitee
|
||||
run: |
|
||||
./cicd-release-linux-amd64 pre-release gitee --release-name=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --tag=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --auto-create-tag --gitee-repository=$GITHUB_REPOSITORY --gitee-username=$GITHUB_ACTOR --gitee-token=${{ secrets.PRIVATE_GITEE_TOKEN }} --release-body=${{ needs.build.outputs.RELEASE_BODY }} --gitlab-export-assets-file-name=cicd-release-assets.json
|
||||
./cicd-release-linux-amd64 pre-release gitee --release-name=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --tag=v0.0.0-${{ needs.build.outputs.YEAR_MONTH_DAY_HOUR_MINUTE }} --auto-create-tag --gitee-repository=$GITHUB_REPOSITORY --gitee-username=$GITHUB_ACTOR --gitee-token=${{ secrets.PRIVATE_GITEE_TOKEN }} --release-body=${{ needs.build.outputs.RELEASE_BODY }} --gitlink-export-assets-file-name=gitlink-release-assets.json
|
||||
|
|
135
.gitlab-ci.yml
135
.gitlab-ci.yml
|
@ -13,73 +13,37 @@ build:golang:1.21:
|
|||
- echo $CI_JOB_ID
|
||||
- go version
|
||||
- go env -w GOPROXY=https://goproxy.cn,direct
|
||||
#- go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/
|
||||
#- go env -w GOPROXY=https://mirrors.aliyun.com/goproxy,direct
|
||||
- go mod download
|
||||
- go test ./... -v
|
||||
- go run main.go
|
||||
- go build -o buildinfo/buildinfo buildinfo/buildinfo.go
|
||||
- GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=windows/amd64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-windows-amd64.exe .
|
||||
- GOOS=windows GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=windows/arm64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-windows-arm64.exe .
|
||||
- GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/amd64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-linux-amd64 .
|
||||
- GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/arm64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-linux-arm64 .
|
||||
- GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=darwin/amd64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-darwin-amd64 .
|
||||
- GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=darwin/arm64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-darwin-arm64 .
|
||||
- GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=windows/amd64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-windows-amd64.exe .
|
||||
- GOOS=windows GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=windows/arm64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-windows-arm64.exe .
|
||||
- GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/amd64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-linux-amd64 .
|
||||
- GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/arm64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-linux-arm64 .
|
||||
- GOOS=linux GOARCH=loong64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/arm64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-loong64 .
|
||||
- GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=darwin/amd64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-darwin-amd64 .
|
||||
- GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=darwin/arm64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release-darwin-arm64 .
|
||||
- ./cicd-release-linux-amd64 --version
|
||||
- ./cicd-release-linux-amd64
|
||||
artifacts:
|
||||
name: "${CI_JOB_NAME}"
|
||||
expire_in: 3 day
|
||||
paths:
|
||||
- cicd-release-windows-*
|
||||
- cicd-release-linux-*
|
||||
- cicd-release-darwin-*
|
||||
- cicd-release-*
|
||||
|
||||
build:docker:
|
||||
stage: build:docker
|
||||
needs:
|
||||
- job: build:golang:1.21
|
||||
artifacts: true
|
||||
image: docker:24.0.6
|
||||
variables:
|
||||
DOCKER_TLS_CERTDIR: ""
|
||||
DOCKER_HOST: tcp://docker:2375
|
||||
services:
|
||||
- name: docker:24.0.6-dind
|
||||
alias: docker
|
||||
image:
|
||||
name: gcr.io/kaniko-project/executor:debug
|
||||
entrypoint: [ "" ]
|
||||
before_script:
|
||||
- set +e
|
||||
- start_time=$(date +%s)
|
||||
- elapsed=0
|
||||
- interval=5
|
||||
- timeout=60
|
||||
- |
|
||||
while true; do
|
||||
docker info >/dev/null 2>&1
|
||||
result=$?
|
||||
echo "result=$result"
|
||||
current_time=$(date +%s)
|
||||
elapsed_time=$((current_time - start_time))
|
||||
if [[ $result -eq 0 ]]; then
|
||||
echo "docker 完成启动"
|
||||
break
|
||||
fi
|
||||
if [[ $elapsed_time -gt $timeout ]]; then
|
||||
echo "docker 启动超时"
|
||||
exit 1
|
||||
fi
|
||||
echo "docker 正在启动($elapsed) ..."
|
||||
elapsed=$((elapsed+interval))
|
||||
sleep $interval
|
||||
done
|
||||
- set -e
|
||||
- docker info
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
|
||||
- echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"$(printf "%s:%s" "${DOCKER_USERNAME}" "${DOCKER_PASSWORD}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
|
||||
script:
|
||||
- cp cicd-release-linux-amd64 docker/debian/
|
||||
- cd $CI_PROJECT_DIR/docker/debian
|
||||
- docker pull registry.jihulab.com/xuxiaowei-cloud/xuxiaowei-cloud/debian:12.1
|
||||
- docker tag registry.jihulab.com/xuxiaowei-cloud/xuxiaowei-cloud/debian:12.1 docker.io/library/debian:12.1
|
||||
- if [ "$CI_COMMIT_TAG" ]; then
|
||||
tag="$CI_COMMIT_TAG";
|
||||
tag_hub="$CI_COMMIT_TAG-debian";
|
||||
|
@ -89,15 +53,14 @@ build:docker:
|
|||
fi
|
||||
- echo "tag=$tag"
|
||||
- echo "tag_hub=$tag_hub"
|
||||
- docker build -t $CI_REGISTRY_IMAGE/cicd-release-debian:$tag . --no-cache --progress plain
|
||||
- docker tag $CI_REGISTRY_IMAGE/cicd-release-debian:$tag $DOCKER_USERNAME/cicd-release:$tag_hub
|
||||
- docker images
|
||||
- docker push $CI_REGISTRY_IMAGE/cicd-release-debian:$tag
|
||||
- docker push $DOCKER_USERNAME/cicd-release:$tag_hub
|
||||
- docker save -o cicd-release-dev-debian-$CI_PIPELINE_ID.tar $CI_REGISTRY_IMAGE/cicd-release-debian:$tag
|
||||
- >-
|
||||
/kaniko/executor
|
||||
--context "${CI_PROJECT_DIR}/docker/debian"
|
||||
--dockerfile "${CI_PROJECT_DIR}/docker/debian/Dockerfile"
|
||||
--destination "${DOCKER_USERNAME}/cicd-release:${tag_hub}"
|
||||
--tar-path "${CI_PROJECT_DIR}/docker/debian/cicd-release-dev-debian-$CI_PIPELINE_ID.tar"
|
||||
artifacts:
|
||||
name: "${CI_JOB_NAME}"
|
||||
expire_in: 3 day
|
||||
paths:
|
||||
- docker/debian/*.tar
|
||||
|
||||
|
@ -111,7 +74,7 @@ build:golang:1.21-alpine3.18:
|
|||
- echo $CI_JOB_ID
|
||||
- go version
|
||||
- go env -w GOPROXY=https://goproxy.cn,direct
|
||||
#- go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/
|
||||
#- go env -w GOPROXY=https://mirrors.aliyun.com/goproxy,direct
|
||||
- go mod download
|
||||
- go test ./... -v
|
||||
- go run main.go
|
||||
|
@ -122,56 +85,21 @@ build:golang:1.21-alpine3.18:
|
|||
- ./cicd-release-linux-alpine-amd64
|
||||
artifacts:
|
||||
name: "${CI_JOB_NAME}"
|
||||
expire_in: 3 day
|
||||
paths:
|
||||
- cicd-release-linux-*
|
||||
- cicd-release-*
|
||||
|
||||
build:docker:alpine3.18:
|
||||
stage: build:docker
|
||||
needs:
|
||||
- job: build:golang:1.21-alpine3.18
|
||||
artifacts: true
|
||||
image: docker:24.0.6
|
||||
variables:
|
||||
DOCKER_TLS_CERTDIR: ""
|
||||
DOCKER_HOST: tcp://docker:2375
|
||||
services:
|
||||
- name: docker:24.0.6-dind
|
||||
alias: docker
|
||||
image:
|
||||
name: gcr.io/kaniko-project/executor:debug
|
||||
entrypoint: [ "" ]
|
||||
before_script:
|
||||
- set +e
|
||||
- start_time=$(date +%s)
|
||||
- elapsed=0
|
||||
- interval=5
|
||||
- timeout=60
|
||||
- |
|
||||
while true; do
|
||||
docker info >/dev/null 2>&1
|
||||
result=$?
|
||||
echo "result=$result"
|
||||
current_time=$(date +%s)
|
||||
elapsed_time=$((current_time - start_time))
|
||||
if [[ $result -eq 0 ]]; then
|
||||
echo "docker 完成启动"
|
||||
break
|
||||
fi
|
||||
if [[ $elapsed_time -gt $timeout ]]; then
|
||||
echo "docker 启动超时"
|
||||
exit 1
|
||||
fi
|
||||
echo "docker 正在启动($elapsed) ..."
|
||||
elapsed=$((elapsed+interval))
|
||||
sleep $interval
|
||||
done
|
||||
- set -e
|
||||
- docker info
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
|
||||
- echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"$(printf "%s:%s" "${DOCKER_USERNAME}" "${DOCKER_PASSWORD}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
|
||||
script:
|
||||
- cp cicd-release-linux-alpine-amd64 docker/alpine/
|
||||
- cd $CI_PROJECT_DIR/docker/alpine
|
||||
- docker pull registry.jihulab.com/xuxiaowei-cloud/xuxiaowei-cloud/alpine:3.18.3
|
||||
- docker tag registry.jihulab.com/xuxiaowei-cloud/xuxiaowei-cloud/alpine:3.18.3 docker.io/library/alpine:3.18.3
|
||||
- if [ "$CI_COMMIT_TAG" ]; then
|
||||
tag="$CI_COMMIT_TAG";
|
||||
tag_hub="$CI_COMMIT_TAG-alpine";
|
||||
|
@ -181,15 +109,14 @@ build:docker:alpine3.18:
|
|||
fi
|
||||
- echo "tag=$tag"
|
||||
- echo "tag_hub=$tag_hub"
|
||||
- docker build -t $CI_REGISTRY_IMAGE/cicd-release-alpine:$tag . --no-cache --progress plain
|
||||
- docker tag $CI_REGISTRY_IMAGE/cicd-release-alpine:$tag $DOCKER_USERNAME/cicd-release:$tag_hub
|
||||
- docker images
|
||||
- docker push $CI_REGISTRY_IMAGE/cicd-release-alpine:$tag
|
||||
- docker push $DOCKER_USERNAME/cicd-release:$tag_hub
|
||||
- docker save -o cicd-release-dev-alpine-$CI_PIPELINE_ID.tar $CI_REGISTRY_IMAGE/cicd-release-alpine:$tag
|
||||
- >-
|
||||
/kaniko/executor
|
||||
--context "${CI_PROJECT_DIR}/docker/alpine"
|
||||
--dockerfile "${CI_PROJECT_DIR}/docker/alpine/Dockerfile"
|
||||
--destination "${DOCKER_USERNAME}/cicd-release:${tag_hub}"
|
||||
--tar-path "${CI_PROJECT_DIR}/docker/alpine/cicd-release-dev-alpine-$CI_PIPELINE_ID.tar"
|
||||
artifacts:
|
||||
name: "${CI_JOB_NAME}"
|
||||
expire_in: 3 day
|
||||
paths:
|
||||
- docker/alpine/*.tar
|
||||
|
||||
|
|
40
README.md
40
README.md
|
@ -110,22 +110,29 @@
|
|||
1. Linux amd64、arm64
|
||||
2. Windows amd64、arm64
|
||||
3. Mac amd64、arm64
|
||||
4. LoongArch 64-bit
|
||||
|
||||
# 构建
|
||||
|
||||
本项目发布在 GitHub 进行构建,并使用构建后的程序将自己发布到各大代码托管平台,发布过程参见:
|
||||
[GitHub Actions](https://github.com/xuxiaowei-com-cn/cicd-release/actions/workflows/go-push.yml)
|
||||
|
||||
## 下载
|
||||
|
||||
1. [gitee](https://gitee.com/xuxiaowei-com-cn/cicd-release/releases)
|
||||
2. [jihulab](https://jihulab.com/xuxiaowei-com-cn/cicd-release/-/releases)
|
||||
3. [gitlab](https://gitlab.com/xuxiaowei-com-cn/cicd-release/-/releases)
|
||||
4. [github](https://github.com/xuxiaowei-com-cn/cicd-release/releases)
|
||||
2. [gitlab](https://gitlab.com/xuxiaowei-com-cn/cicd-release/-/releases)
|
||||
3. [github](https://github.com/xuxiaowei-com-cn/cicd-release/releases)
|
||||
4. [gitlink](https://gitlink.org.cn/xuxiaowei-com-cn/cicd-release/releases)
|
||||
|
||||
## 支持的功能
|
||||
|
||||
1. 一键发布到 github,可包含产物上传
|
||||
2. 一键发布到 gitlab,可包含产物上传,可自定义域名(支持自建 gitlab),支持将产物文件名、链接导出为 map,可供 gitee 使用
|
||||
3. 一键发布到 gitee,由于 gitee 暂不支持提供上传产物的 API 接口,
|
||||
本工具支持提供 json 文件(map 形式,键:代表文件名,值:代表下载链接)作为产物,本项目使用 [极狐](https://jihulab.com) 作为
|
||||
本工具支持提供 json 文件(map 形式,键:代表文件名,值:代表下载链接)作为产物,本项目使用 [GitLink](https://www.gitlink.org.cn) 作为
|
||||
gitee 产物链接
|
||||
4. 一键发布到 gitlink,可包含产物上传(需要等到官方开放 token 功能,或者联系官方人员申请 token 才能使用)
|
||||
4. 一键发布到 gitlink,可包含产物上传(需要等到官方开放 token 功能,或者联系官方人员申请 token 才能使用),
|
||||
本工具支持提供 json 文件(map 形式,键:代表文件名,值:代表下载链接)作为产物
|
||||
|
||||
## 开发命令
|
||||
|
||||
|
@ -134,7 +141,9 @@
|
|||
```shell
|
||||
go env -w GOPROXY=https://goproxy.cn,direct
|
||||
# go env -w GOPROXY=https://proxy.golang.org,direct
|
||||
# go env -w GOPROXY=https://goproxy.io,direct
|
||||
# go env -w GOPROXY=https://mirrors.aliyun.com/goproxy,direct
|
||||
# go env -w GOPROXY=https://mirrors.cloud.tencent.com/go,direct
|
||||
go get -u github.com/urfave/cli/v2
|
||||
go get -u github.com/xuxiaowei-com-cn/git-go@main
|
||||
go get -u github.com/xuxiaowei-com-cn/go-gitlink/v2
|
||||
|
@ -235,6 +244,9 @@ OPTIONS:
|
|||
--gitlab-export-assets-file-name value Gitlab 导出资源文件名称。
|
||||
主要用于发布到 Gitee 时在版本发布中新增产物下载地址(Gitee 没有上传产物的 API)。
|
||||
导出格式为 map,键:代表文件名,值:代表下载链接
|
||||
--gitlab-import-assets-file-name value Gitlab 导入资源文件名称。
|
||||
主要用于发布到未启用 GitLab 软件包库时,发布中产物下载地址。
|
||||
导入格式为 map,键:代表文件名,值:代表下载链接
|
||||
--github-repository value Github 仓库。
|
||||
如:https://github.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为:xuxiaowei-com-cn/cicd-release [%GITHUB_REPOSITORY%]
|
||||
--github-username value Github 用户名 [%GITHUB_ACTOR%]
|
||||
|
@ -244,6 +256,10 @@ OPTIONS:
|
|||
--gitlink-username value Gitlink 用户名
|
||||
--gitlink-token value Gitlink Token
|
||||
--gitlink-cookie value Gitlink Cookie
|
||||
--gitlink-export-assets-file-name value Gitlink 导出资源文件名称。
|
||||
主要用于发布到 Gitee 时在版本发布中新增产物下载地址(Gitee 没有上传产物的 API)。
|
||||
导出格式为 map,键:代表文件名,值:代表下载链接
|
||||
--gitlink-attachments-prefix value Gitlink 附件URL前缀。 (default: "https://www.gitlink.org.cn/api/attachments")
|
||||
--help, -h show help
|
||||
```
|
||||
|
||||
|
@ -289,6 +305,9 @@ OPTIONS:
|
|||
--gitlab-export-assets-file-name value Gitlab 导出资源文件名称。
|
||||
主要用于发布到 Gitee 时在版本发布中新增产物下载地址(Gitee 没有上传产物的 API)。
|
||||
导出格式为 map,键:代表文件名,值:代表下载链接
|
||||
--gitlab-import-assets-file-name value Gitlab 导入资源文件名称。
|
||||
主要用于发布到未启用 GitLab 软件包库时,发布中产物下载地址。
|
||||
导入格式为 map,键:代表文件名,值:代表下载链接
|
||||
--github-repository value Github 仓库。
|
||||
如:https://github.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为:xuxiaowei-com-cn/cicd-release [%GITHUB_REPOSITORY%]
|
||||
--github-username value Github 用户名 [%GITHUB_ACTOR%]
|
||||
|
@ -298,6 +317,10 @@ OPTIONS:
|
|||
--gitlink-username value Gitlink 用户名
|
||||
--gitlink-token value Gitlink Token
|
||||
--gitlink-cookie value Gitlink Cookie
|
||||
--gitlink-export-assets-file-name value Gitlink 导出资源文件名称。
|
||||
主要用于发布到 Gitee 时在版本发布中新增产物下载地址(Gitee 没有上传产物的 API)。
|
||||
导出格式为 map,键:代表文件名,值:代表下载链接
|
||||
--gitlink-attachments-prefix value Gitlink 附件URL前缀。 (default: "https://www.gitlink.org.cn/api/attachments")
|
||||
--help, -h show help
|
||||
```
|
||||
|
||||
|
@ -347,6 +370,13 @@ go build
|
|||
GOOS=linux GOARCH=arm64 go build -v -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$(buildinfo/buildinfo commitBranch) -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/arm64 -X main.CiPipelineId= -X main.CiJobId=" -trimpath -o cicd-release-linux-arm64 .
|
||||
```
|
||||
|
||||
- LoongArch
|
||||
- 64-bit
|
||||
```shell
|
||||
go build -o buildinfo/buildinfo buildinfo/buildinfo.go
|
||||
GOOS=linux GOARCH=loong64 go build -v -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$(buildinfo/buildinfo commitBranch) -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=darwin/amd64 -X main.CiPipelineId= -X main.CiJobId=" -trimpath -o cicd-release-loong64 .
|
||||
```
|
||||
|
||||
- Darwin
|
||||
- amd64
|
||||
```shell
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
"log"
|
||||
"math/big"
|
||||
"net/url"
|
||||
"os"
|
||||
"os/exec"
|
||||
"strings"
|
||||
)
|
||||
|
@ -71,7 +72,10 @@ func GitPushTag(instance string, repository string, username, token, tag string)
|
|||
log.Printf("Git 推送远端 标签 %s 开始\n", tag)
|
||||
|
||||
cmdPush := exec.Command("git", "push", origin, tag)
|
||||
_, err = cmdPush.Output()
|
||||
cmdPush.Stdout = os.Stdout
|
||||
cmdPush.Stderr = os.Stderr
|
||||
|
||||
err = cmdPush.Run()
|
||||
if err != nil {
|
||||
log.Printf("Git 推送远端 %s 标签 %s 异常:\n%s", origin, tag, err)
|
||||
return err
|
||||
|
|
28
api/gitee.go
28
api/gitee.go
|
@ -42,6 +42,7 @@ func Gitee(prerelease bool, context *cli.Context) error {
|
|||
var giteeUsername = context.String(constant.GiteeUsername)
|
||||
var giteeToken = context.String(constant.GiteeToken)
|
||||
var gitlabExportAssetsFileName = context.String(constant.GitlabExportAssetsFileName)
|
||||
var gitlinkExportAssetsFileName = context.String(constant.GitlinkExportAssetsFileName)
|
||||
|
||||
log.Printf("是否是预发布版本:%v", prerelease)
|
||||
log.Printf("发布到 Gitee,路径:%s", giteeRepository)
|
||||
|
@ -71,7 +72,7 @@ func Gitee(prerelease bool, context *cli.Context) error {
|
|||
}
|
||||
|
||||
// 发布
|
||||
err = GiteeReleases(prerelease, giteeRepository, releaseName, releaseBody, tag, giteeToken, gitlabExportAssetsFileName)
|
||||
err = GiteeReleases(prerelease, giteeRepository, releaseName, releaseBody, tag, giteeToken, gitlabExportAssetsFileName, gitlinkExportAssetsFileName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -156,7 +157,7 @@ func GiteeGetReleases(giteeRepository, giteeToken string) error {
|
|||
// GiteeReleases
|
||||
// 发布
|
||||
func GiteeReleases(prerelease bool, giteeRepository string, releaseName string, releaseBody string, tag string,
|
||||
giteeToken string, gitlabExportAssetsFileName string) error {
|
||||
giteeToken string, gitlabExportAssetsFileName string, gitlinkExportAssetsFileName string) error {
|
||||
|
||||
if gitlabExportAssetsFileName != "" {
|
||||
jsonData, err := os.ReadFile(gitlabExportAssetsFileName)
|
||||
|
@ -181,6 +182,29 @@ func GiteeReleases(prerelease bool, giteeRepository string, releaseName string,
|
|||
}
|
||||
}
|
||||
|
||||
if gitlinkExportAssetsFileName != "" {
|
||||
jsonData, err := os.ReadFile(gitlinkExportAssetsFileName)
|
||||
if err != nil {
|
||||
log.Printf("ReadFile %s Error:\n%s", gitlinkExportAssetsFileName, err)
|
||||
return err
|
||||
}
|
||||
|
||||
readResult := make(map[string]interface{})
|
||||
|
||||
err = json.Unmarshal(jsonData, &readResult)
|
||||
if err != nil {
|
||||
log.Printf("Unmarshal %s Error:\n%s", gitlinkExportAssetsFileName, err)
|
||||
return err
|
||||
}
|
||||
|
||||
releaseBody += "\n"
|
||||
releaseBody += "***\n"
|
||||
|
||||
for key, value := range readResult {
|
||||
releaseBody += fmt.Sprintf("\n- [%s](%s)\n", key, value)
|
||||
}
|
||||
}
|
||||
|
||||
sha, err := GitTagSha(tag)
|
||||
if err != nil {
|
||||
return nil
|
||||
|
|
|
@ -48,6 +48,7 @@ func Gitlab(prerelease bool, context *cli.Context) error {
|
|||
var gitlabUsername = context.String(constant.GitlabUsername)
|
||||
var gitlabToken = context.String(constant.GitlabToken)
|
||||
var gitlabExportAssetsFileName = context.String(constant.GitlabExportAssetsFileName)
|
||||
var gitlabImportAssetsFileName = context.String(constant.GitlabImportAssetsFileName)
|
||||
|
||||
log.Printf("是否是预发布版本:%v", prerelease)
|
||||
log.Printf("发布到 GitLab,实例:%s,路径:%s", gitlabInstance, gitlabRepository)
|
||||
|
@ -95,7 +96,7 @@ func Gitlab(prerelease bool, context *cli.Context) error {
|
|||
|
||||
// 发布
|
||||
err = GitlabReleases(releaseName, releaseBody, tag, milestones,
|
||||
baseUrl, gitlabApi, gitlabRepositoryEscape, gitlabToken, genericPackages)
|
||||
baseUrl, gitlabApi, gitlabRepositoryEscape, gitlabToken, genericPackages, gitlabImportAssetsFileName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -219,7 +220,7 @@ func GitlabGetReleases(getReleasesUrl string, gitlabToken string) error {
|
|||
// 发布
|
||||
func GitlabReleases(releaseName string, releaseBody string, tag string, milestones []string,
|
||||
baseUrl *url.URL, gitlabApi string, gitlabRepositoryEscape string, gitlabToken string,
|
||||
genericPackages map[string]interface{}) error {
|
||||
genericPackages map[string]interface{}, gitlabImportAssetsFileName string) error {
|
||||
|
||||
data := Data{
|
||||
Name: releaseName,
|
||||
|
@ -238,6 +239,31 @@ func GitlabReleases(releaseName string, releaseBody string, tag string, mileston
|
|||
assets.Links = append(assets.Links, link)
|
||||
}
|
||||
}
|
||||
|
||||
readResult := make(map[string]interface{})
|
||||
|
||||
if gitlabImportAssetsFileName != "" {
|
||||
jsonData, err := os.ReadFile(gitlabImportAssetsFileName)
|
||||
if err != nil {
|
||||
log.Printf("ReadFile %s Error:\n%s", gitlabImportAssetsFileName, err)
|
||||
return err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(jsonData, &readResult)
|
||||
if err != nil {
|
||||
log.Printf("Unmarshal %s Error:\n%s", gitlabImportAssetsFileName, err)
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
for key, value := range readResult {
|
||||
link := Link{
|
||||
Name: key,
|
||||
Url: value.(string),
|
||||
}
|
||||
assets.Links = append(assets.Links, link)
|
||||
}
|
||||
|
||||
data.Assets = assets
|
||||
|
||||
jsonData, err := json.Marshal(data)
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
package api
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/urfave/cli/v2"
|
||||
"github.com/xuxiaowei-com-cn/cicd-release/constant"
|
||||
"github.com/xuxiaowei-com-cn/go-gitlink/v2"
|
||||
"log"
|
||||
"net/url"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
@ -22,12 +26,19 @@ func Gitlink(prerelease bool, context *cli.Context) error {
|
|||
var gitlinkToken = context.String(constant.GitlinkToken)
|
||||
var gitlinkCookie = context.String(constant.GitlinkCookie)
|
||||
var draft = context.Bool(constant.Draft)
|
||||
var gitlinkExportAssetsFileName = context.String(constant.GitlinkExportAssetsFileName)
|
||||
var gitlinkAttachmentsPrefix = context.String(constant.GitlinkAttachmentsPrefix)
|
||||
|
||||
log.Printf("是否是预发布版本:%v", prerelease)
|
||||
log.Printf("发布到 Gitlink,路径:%s", gitlinkRepository)
|
||||
|
||||
_, err := url.Parse(gitlinkAttachmentsPrefix)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 检查发布
|
||||
err := GitlinkGetReleases(gitlinkCookie)
|
||||
err = GitlinkGetReleases(gitlinkCookie)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -51,13 +62,13 @@ func Gitlink(prerelease bool, context *cli.Context) error {
|
|||
}
|
||||
|
||||
// 上传产物
|
||||
attachments, err := GitlinkAttachments(artifacts, gitlinkCookie, gitlinkRepository)
|
||||
attachmentIds, _, err := GitlinkAttachments(artifacts, gitlinkExportAssetsFileName, gitlinkCookie)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 发布
|
||||
err = GitlinkReleases(prerelease, releaseName, releaseBody, tag, gitlinkRepository, gitlinkCookie, attachments, draft)
|
||||
err = GitlinkReleases(prerelease, releaseName, releaseBody, tag, gitlinkRepository, gitlinkCookie, attachmentIds, draft)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -81,35 +92,62 @@ func GitlinkGetTag(gitlinkCookie string, tag string) error {
|
|||
|
||||
// GitlinkAttachments
|
||||
// 上传产物
|
||||
func GitlinkAttachments(artifacts []string, gitlinkCookie string, gitlinkRepository string) ([]int64, error) {
|
||||
func GitlinkAttachments(artifacts []string, gitlinkExportAssetsFileName string, gitlinkCookie string) ([]string, map[string]interface{}, error) {
|
||||
|
||||
gitClient, err := gitlink.NewClient("")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
gitClient.Cookie = gitlinkCookie
|
||||
|
||||
var attachmentsIds []int64
|
||||
var attachmentIds []string
|
||||
var attachments = make(map[string]interface{})
|
||||
|
||||
for _, artifact := range artifacts {
|
||||
attachmentsData, _, err := gitClient.Attachments.PostAttachments(artifact, "")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, nil, err
|
||||
}
|
||||
if attachmentsData.Status == 0 {
|
||||
attachmentsIds = append(attachmentsIds, attachmentsData.Id)
|
||||
if attachmentsData.Status == nil || *attachmentsData.Status == 0 {
|
||||
attachmentIds = append(attachmentIds, attachmentsData.Id)
|
||||
|
||||
fileName := filepath.Base(artifact)
|
||||
attachments[fileName] = attachmentsData.Url
|
||||
} else {
|
||||
return nil, errors.New(attachmentsData.Message)
|
||||
return nil, nil, errors.New(attachmentsData.Message)
|
||||
}
|
||||
}
|
||||
|
||||
return attachmentsIds, nil
|
||||
if gitlinkExportAssetsFileName != "" {
|
||||
|
||||
jsonData, err := json.Marshal(attachments)
|
||||
if err != nil {
|
||||
log.Println("Error marshal JSON:", err)
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
file, err := os.Create(gitlinkExportAssetsFileName)
|
||||
if err != nil {
|
||||
log.Printf("Create %s Error:\n%s", gitlinkExportAssetsFileName, err)
|
||||
return nil, nil, err
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
// 将 JSON 数据写入文件
|
||||
_, err = file.Write(jsonData)
|
||||
if err != nil {
|
||||
log.Printf("Write %s Error:\n%s", gitlinkExportAssetsFileName, err)
|
||||
return nil, nil, err
|
||||
}
|
||||
}
|
||||
|
||||
return attachmentIds, attachments, nil
|
||||
}
|
||||
|
||||
// GitlinkReleases
|
||||
// 发布
|
||||
func GitlinkReleases(prerelease bool, releaseName string, releaseBody string, tag string, gitlinkRepository string, gitlinkCookie string, attachments []int64, draft bool) error {
|
||||
func GitlinkReleases(prerelease bool, releaseName string, releaseBody string, tag string, gitlinkRepository string, gitlinkCookie string, attachmentIds []string, draft bool) error {
|
||||
|
||||
gitClient, err := gitlink.NewClient("")
|
||||
if err != nil {
|
||||
|
@ -136,7 +174,7 @@ func GitlinkReleases(prerelease bool, releaseName string, releaseBody string, ta
|
|||
}
|
||||
|
||||
requestBody := &gitlink.PostReleasesRequestBody{
|
||||
AttachmentIds: attachments,
|
||||
AttachmentIds: attachmentIds,
|
||||
Body: releaseBody,
|
||||
Name: releaseName,
|
||||
TagName: tag,
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# 说明
|
||||
|
||||
此文件夹下的配置用于纯 Docker 环境下构建 Docker 镜像(分阶段构建)
|
|
@ -0,0 +1,18 @@
|
|||
# 说明
|
||||
|
||||
此文件夹下的配置用于 [建木Hub](https://www.jianmuhub.com) 环境下构建 Docker 镜像(分阶段构建)
|
||||
|
||||
## 建木Hub 构建命令
|
||||
|
||||
- 在项目根目录下执行
|
||||
|
||||
```shell
|
||||
# --no-cache:不使用缓存
|
||||
# --progress plain:显示构建日志
|
||||
docker build . -f ./builder/jianmuhub/alpine/Dockerfile -t docker.jianmuhub.com/xuxiaowei/cicd-release:alpine --no-cache --progress plain
|
||||
docker build . -f ./builder/jianmuhub/debian/Dockerfile -t docker.jianmuhub.com/xuxiaowei/cicd-release:debian --no-cache --progress plain
|
||||
```
|
||||
|
||||
## 建木Hub 镜像
|
||||
|
||||
- https://res.jianmuhub.com/image/xuxiaowei/cicd-release
|
|
@ -0,0 +1,21 @@
|
|||
FROM golang:1.21-alpine3.18 AS builder
|
||||
|
||||
WORKDIR /builder
|
||||
|
||||
ADD . .
|
||||
|
||||
RUN ls \
|
||||
&& go version \
|
||||
&& go env -w GOPROXY=https://goproxy.cn,direct \
|
||||
&& go mod download \
|
||||
&& go test ./... -v \
|
||||
&& go run main.go \
|
||||
&& go build -o buildinfo/buildinfo buildinfo/buildinfo.go \
|
||||
&& go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/amd64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release . \
|
||||
&& ./cicd-release --version
|
||||
|
||||
FROM alpine:3.18.3
|
||||
|
||||
MAINTAINER 徐晓伟 xuxiaowei@xuxiaowei.com.cn
|
||||
|
||||
COPY --from=builder /builder/cicd-release /usr/bin/cicd-release
|
|
@ -0,0 +1,21 @@
|
|||
FROM golang:1.21 AS builder
|
||||
|
||||
WORKDIR /builder
|
||||
|
||||
ADD . .
|
||||
|
||||
RUN ls \
|
||||
&& go version \
|
||||
&& go env -w GOPROXY=https://goproxy.cn,direct \
|
||||
&& go mod download \
|
||||
&& go test ./... -v \
|
||||
&& go run main.go \
|
||||
&& go build -o buildinfo/buildinfo buildinfo/buildinfo.go \
|
||||
&& go build -ldflags "-s -w -buildid= -X main.BuildDate=$(buildinfo/buildinfo now) -X main.Compiler= -X main.GitCommitBranch=$CI_COMMIT_BRANCH -X main.GitCommitSha=$(buildinfo/buildinfo commitSha) -X main.GitCommitShortSha=$(buildinfo/buildinfo commitShortSha) -X main.GitCommitTag=$(buildinfo/buildinfo commitTag) -X main.GitCommitTimestamp=$(buildinfo/buildinfo commitTimestamp) -X main.GitTreeState=$(buildinfo/buildinfo git-tree-state) -X main.GitVersion=$(buildinfo/buildinfo commitTag) -X main.GoVersion=$(buildinfo/buildinfo goShortVersion) -X main.Major= -X main.Minor= -X main.Revision= -X main.Platform=linux/amd64 -X main.InstanceUrl=$CI_SERVER_URL -X main.CiPipelineId=$CI_PIPELINE_ID -X main.CiJobId=$CI_JOB_ID" -trimpath -o cicd-release . \
|
||||
&& ./cicd-release --version
|
||||
|
||||
FROM debian:12.1
|
||||
|
||||
MAINTAINER 徐晓伟 xuxiaowei@xuxiaowei.com.cn
|
||||
|
||||
COPY --from=builder /builder/cicd-release /usr/bin/cicd-release
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
```shell
|
||||
go env -w GOPROXY=https://goproxy.cn,direct
|
||||
# go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/
|
||||
# go env -w GOPROXY=https://mirrors.aliyun.com/goproxy,direct
|
||||
go get -u github.com/xuxiaowei-com-cn/git-go@main
|
||||
```
|
||||
|
||||
|
|
|
@ -1,30 +1,33 @@
|
|||
package constant
|
||||
|
||||
const (
|
||||
PreRelease = "pre-release" // 预发布
|
||||
Release = "release" // 发布
|
||||
ReleaseName = "release-name" // 发布名称
|
||||
ReleaseBody = "release-body" // 发布详情
|
||||
Tag = "tag" // 发布标签
|
||||
Draft = "draft" // 草稿
|
||||
PackageName = "package-name" // 包名,只能包含小写字母(az)、大写字母(AZ)、数字(0-9)、点(.)、连字符(-)或下划线(_)
|
||||
Milestones = "milestones" // 发布里程碑
|
||||
AutoCreateTag = "auto-create-tag" // 自动创建不存在的标签
|
||||
Artifacts = "artifacts" // 发布产物
|
||||
GithubUsername = "github-username" // Github 用户名
|
||||
GithubToken = "github-token" // Github Token
|
||||
GithubRepository = "github-repository" // Github 仓库,如:https://github.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为:xuxiaowei-com-cn/cicd-release
|
||||
GiteeUsername = "gitee-username" // Gitee 用户名
|
||||
GiteeToken = "gitee-token" // Gitee Token
|
||||
GiteeRepository = "gitee-repository" // Gitee 仓库,如:https://gitee.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为:xuxiaowei-com-cn/cicd-release
|
||||
GitlabUsername = "gitlab-username" // Gitlab 用户名
|
||||
GitlabToken = "gitlab-token" // Gitlab Token
|
||||
GitlabInstance = "gitlab-instance" // Gitlab 实例(协议 + 域名)
|
||||
GitlabApi = "gitlab-api" // Gitlab API
|
||||
GitlabRepository = "gitlab-repository" // Gitee 仓库,如:https://gitlab.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为:xuxiaowei-com-cn/cicd-release
|
||||
GitlabExportAssetsFileName = "gitlab-export-assets-file-name" // Gitlab 导出资源文件名称
|
||||
GitlinkUsername = "gitlink-username" // gitlink 用户名
|
||||
GitlinkToken = "gitlink-token" // gitlink Token
|
||||
GitlinkCookie = "gitlink-cookie" // gitlink Cookie
|
||||
GitlinkRepository = "gitlink-repository" // gitlink 仓库,如:https://gitlink.org.cn/xuxiaowei-com-cn/cicd-release.git 仓库应该为:xuxiaowei-com-cn/cicd-release
|
||||
PreRelease = "pre-release" // 预发布
|
||||
Release = "release" // 发布
|
||||
ReleaseName = "release-name" // 发布名称
|
||||
ReleaseBody = "release-body" // 发布详情
|
||||
Tag = "tag" // 发布标签
|
||||
Draft = "draft" // 草稿
|
||||
PackageName = "package-name" // 包名,只能包含小写字母(az)、大写字母(AZ)、数字(0-9)、点(.)、连字符(-)或下划线(_)
|
||||
Milestones = "milestones" // 发布里程碑
|
||||
AutoCreateTag = "auto-create-tag" // 自动创建不存在的标签
|
||||
Artifacts = "artifacts" // 发布产物
|
||||
GithubUsername = "github-username" // Github 用户名
|
||||
GithubToken = "github-token" // Github Token
|
||||
GithubRepository = "github-repository" // Github 仓库,如:https://github.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为:xuxiaowei-com-cn/cicd-release
|
||||
GiteeUsername = "gitee-username" // Gitee 用户名
|
||||
GiteeToken = "gitee-token" // Gitee Token
|
||||
GiteeRepository = "gitee-repository" // Gitee 仓库,如:https://gitee.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为:xuxiaowei-com-cn/cicd-release
|
||||
GitlabUsername = "gitlab-username" // Gitlab 用户名
|
||||
GitlabToken = "gitlab-token" // Gitlab Token
|
||||
GitlabInstance = "gitlab-instance" // Gitlab 实例(协议 + 域名)
|
||||
GitlabApi = "gitlab-api" // Gitlab API
|
||||
GitlabRepository = "gitlab-repository" // Gitee 仓库,如:https://gitlab.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为:xuxiaowei-com-cn/cicd-release
|
||||
GitlabExportAssetsFileName = "gitlab-export-assets-file-name" // Gitlab 导出资源文件名称
|
||||
GitlabImportAssetsFileName = "gitlab-import-assets-file-name" // Gitlab 导入资源文件名称
|
||||
GitlinkUsername = "gitlink-username" // gitlink 用户名
|
||||
GitlinkToken = "gitlink-token" // gitlink Token
|
||||
GitlinkCookie = "gitlink-cookie" // gitlink Cookie
|
||||
GitlinkRepository = "gitlink-repository" // gitlink 仓库,如:https://gitlink.org.cn/xuxiaowei-com-cn/cicd-release.git 仓库应该为:xuxiaowei-com-cn/cicd-release
|
||||
GitlinkExportAssetsFileName = "gitlink-export-assets-file-name" // gitlink 导出资源文件名称
|
||||
GitlinkAttachmentsPrefix = "gitlink-attachments-prefix" // gitlink 附件URL前缀,如:https://www.gitlink.org.cn/api/attachments
|
||||
)
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
# 说明
|
||||
|
||||
此文件夹下的配置用于 GitLab CI/CD 构建 Docker 镜像
|
29
flag/flag.go
29
flag/flag.go
|
@ -169,6 +169,13 @@ func GitlabExportAssetsNameFlag() cli.Flag {
|
|||
}
|
||||
}
|
||||
|
||||
func GitlabImportAssetsFileNameFlag() cli.Flag {
|
||||
return &cli.StringFlag{
|
||||
Name: constant.GitlabImportAssetsFileName,
|
||||
Usage: "Gitlab 导入资源文件名称。\n\t主要用于发布到未启用 GitLab 软件包库时,发布中产物下载地址。\n\t导入格式为 map,键:代表文件名,值:代表下载链接",
|
||||
}
|
||||
}
|
||||
|
||||
func GitlinkRepositoryFlag(required bool) cli.Flag {
|
||||
return &cli.StringFlag{
|
||||
Name: constant.GitlinkRepository,
|
||||
|
@ -201,6 +208,21 @@ func GitlinkCookieFlag(required bool) cli.Flag {
|
|||
}
|
||||
}
|
||||
|
||||
func GitlinkExportAssetsFileNameFlag() cli.Flag {
|
||||
return &cli.StringFlag{
|
||||
Name: constant.GitlinkExportAssetsFileName,
|
||||
Usage: "Gitlink 导出资源文件名称。\n\t主要用于发布到 Gitee 时在版本发布中新增产物下载地址(Gitee 没有上传产物的 API)。\n\t导出格式为 map,键:代表文件名,值:代表下载链接",
|
||||
}
|
||||
}
|
||||
|
||||
func GitlinkAttachmentsPrefixFlag() cli.Flag {
|
||||
return &cli.StringFlag{
|
||||
Name: constant.GitlinkAttachmentsPrefix,
|
||||
Usage: "Gitlink 附件URL前缀。",
|
||||
Value: "https://www.gitlink.org.cn/api/attachments",
|
||||
}
|
||||
}
|
||||
|
||||
func GiteeFlag() []cli.Flag {
|
||||
return []cli.Flag{
|
||||
ReleaseNameFlag(true),
|
||||
|
@ -208,6 +230,7 @@ func GiteeFlag() []cli.Flag {
|
|||
TagFlag(true),
|
||||
AutoCreateTagFlag(),
|
||||
GitlabExportAssetsNameFlag(),
|
||||
GitlinkExportAssetsFileNameFlag(),
|
||||
|
||||
GiteeRepositoryFlag(true),
|
||||
GiteeUsername(true),
|
||||
|
@ -231,6 +254,7 @@ func GitlabFlag() []cli.Flag {
|
|||
GitlabUsernameFlag(true),
|
||||
GitlabTokenFlag(true),
|
||||
GitlabExportAssetsNameFlag(),
|
||||
GitlabImportAssetsFileNameFlag(),
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -256,6 +280,8 @@ func GitlinkFlag() []cli.Flag {
|
|||
TagFlag(true),
|
||||
AutoCreateTagFlag(),
|
||||
ArtifactsFlag(),
|
||||
GitlinkExportAssetsFileNameFlag(),
|
||||
GitlinkAttachmentsPrefixFlag(),
|
||||
|
||||
GitlinkRepositoryFlag(true),
|
||||
GitlinkUsernameFlag(true),
|
||||
|
@ -286,6 +312,7 @@ func CommonFlag() []cli.Flag {
|
|||
GitlabUsernameFlag(false),
|
||||
GitlabTokenFlag(false),
|
||||
GitlabExportAssetsNameFlag(),
|
||||
GitlabImportAssetsFileNameFlag(),
|
||||
|
||||
GithubRepositoryFlag(false),
|
||||
GithubUsernameFlag(false),
|
||||
|
@ -295,5 +322,7 @@ func CommonFlag() []cli.Flag {
|
|||
GitlinkUsernameFlag(false),
|
||||
GitlinkTokenFlag(false),
|
||||
GitlinkCookieFlag(false),
|
||||
GitlinkExportAssetsFileNameFlag(),
|
||||
GitlinkAttachmentsPrefixFlag(),
|
||||
}
|
||||
}
|
||||
|
|
4
go.mod
4
go.mod
|
@ -3,9 +3,9 @@ module github.com/xuxiaowei-com-cn/cicd-release
|
|||
go 1.21
|
||||
|
||||
require (
|
||||
github.com/urfave/cli/v2 v2.25.7
|
||||
github.com/urfave/cli/v2 v2.26.0
|
||||
github.com/xuxiaowei-com-cn/git-go v0.0.0-20231127015559-635f5e3143dc
|
||||
github.com/xuxiaowei-com-cn/go-gitlink/v2 v2.1.4
|
||||
github.com/xuxiaowei-com-cn/go-gitlink/v2 v2.1.7
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
|
||||
|
|
12
go.sum
12
go.sum
|
@ -1,5 +1,6 @@
|
|||
github.com/cpuguy83/go-md2man/v2 v2.0.3 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM=
|
||||
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/google/go-cmp v0.5.2 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
|
||||
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
|
||||
|
@ -11,18 +12,21 @@ github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxC
|
|||
github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
|
||||
github.com/hashicorp/go-retryablehttp v0.7.5 h1:bJj+Pj19UZMIweq/iie+1u5YCdGrnxCT9yvm0e+Nd5M=
|
||||
github.com/hashicorp/go-retryablehttp v0.7.5/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/urfave/cli/v2 v2.25.7 h1:VAzn5oq403l5pHjc4OhD54+XGO9cdKVL/7lDjF+iKUs=
|
||||
github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ=
|
||||
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
github.com/urfave/cli/v2 v2.26.0 h1:3f3AMg3HpThFNT4I++TKOejZO8yU55t3JnnSr4S4QEI=
|
||||
github.com/urfave/cli/v2 v2.26.0/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ=
|
||||
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=
|
||||
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8=
|
||||
github.com/xuxiaowei-com-cn/git-go v0.0.0-20231127015559-635f5e3143dc h1:2D2D/n8SYY91dl3NAX4NtGhxdgx8Tgl5Bd6y8KLYzDo=
|
||||
github.com/xuxiaowei-com-cn/git-go v0.0.0-20231127015559-635f5e3143dc/go.mod h1:1EL7YDsw6C+ctxYYqfBHz2Q0CTK6qjZmq//DYFp4kmo=
|
||||
github.com/xuxiaowei-com-cn/go-gitlink/v2 v2.1.4 h1:nJuchCQIP1DtHi/0nlo0j+F2a5p4PC3IfG+7XZc1+9w=
|
||||
github.com/xuxiaowei-com-cn/go-gitlink/v2 v2.1.4/go.mod h1:uJCrSY4f3/hxdx7Iv+gcyMj/rpm/sOpve69S/KKgsdE=
|
||||
github.com/xuxiaowei-com-cn/go-gitlink/v2 v2.1.7 h1:LiEmRdaNuwD+ejiE7J3Dxu0xYGOfsxJl8GR3c9WqDq4=
|
||||
github.com/xuxiaowei-com-cn/go-gitlink/v2 v2.1.7/go.mod h1:CE9iNPXiXL01uzbKfNL2y0lSxF3xa20rghiBRbLXNGA=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
|
|
18
sync.yml
18
sync.yml
|
@ -192,7 +192,7 @@ sync-github:
|
|||
# 允许失败
|
||||
allow_failure: true
|
||||
|
||||
sync-jihulab:
|
||||
sync-framagit:
|
||||
stage: sync
|
||||
variables:
|
||||
GIT_DEPTH: 0 # 取消浅层克隆
|
||||
|
@ -202,18 +202,26 @@ sync-jihulab:
|
|||
- git config --global user.name $GITLAB_USER_NAME
|
||||
- git config --global user.email
|
||||
- git config --global user.name
|
||||
- git remote add jihulab https://xuxiaowei-com-cn:$JIHULAB_PRIVATE_TOKEN@jihulab.com/$CI_PROJECT_PATH.git
|
||||
- git remote add framagit https://xuxiaowei:$FRAMAGIT_PRIVATE_TOKEN@framagit.org/$CI_PROJECT_PATH.git
|
||||
- echo 当前分支:$CI_COMMIT_BRANCH
|
||||
- echo 当前标签:$CI_COMMIT_TAG
|
||||
- if [ "$CI_COMMIT_BRANCH" ]; then
|
||||
git checkout -b $CI_COMMIT_BRANCH;
|
||||
git pull --progress -v --no-rebase jihulab $CI_COMMIT_BRANCH || echo 远端不存在$CI_COMMIT_BRANCH分支;
|
||||
git push -u jihulab $CI_COMMIT_BRANCH;
|
||||
git pull --progress -v --no-rebase framagit $CI_COMMIT_BRANCH || echo 远端不存在$CI_COMMIT_BRANCH分支;
|
||||
git push -u framagit $CI_COMMIT_BRANCH;
|
||||
fi
|
||||
- if [ "$CI_COMMIT_TAG" ]; then
|
||||
git push -u jihulab $CI_COMMIT_TAG;
|
||||
git push -u framagit $CI_COMMIT_TAG;
|
||||
fi
|
||||
rules:
|
||||
# GitCode 实例不执行
|
||||
- if: $CI_SERVER_HOST == 'gitcode.net'
|
||||
# 不执行
|
||||
when: never
|
||||
# framagit.org 不同步到自己
|
||||
- if: $CI_SERVER_HOST == 'framagit.org'
|
||||
# 不执行
|
||||
when: never
|
||||
# 匹配以 dependabot 开头的分支
|
||||
- if: $CI_SERVER_HOST == 'gitlab.helm.xuxiaowei.cn' && $CI_COMMIT_BRANCH =~ /^dependabot*/
|
||||
# 不执行
|
||||
|
|
Loading…
Reference in New Issue