Compare commits

...

23 Commits

Author SHA1 Message Date
徐晓伟 da810b6307 Revert "👷 简化流水"
This reverts commit c81ef04d6f.
2024-01-16 12:43:16 +08:00
徐晓伟 c81ef04d6f 👷 简化流水 2024-01-16 12:25:16 +08:00
徐晓伟 6d78de1aa0 Gitlab 导入资源文件名称、发布到 framagit 2024-01-16 11:59:33 +08:00
徐晓伟 f6aabd5cc6 👷 framagit.org 不同步到自己 2024-01-15 16:45:56 +08:00
徐晓伟 d559f0d864 推送 git 时,增加日志 2024-01-15 16:43:06 +08:00
徐晓伟 fee4fb08a7 🐛 修正发布 gitlink
https://www.gitlink.org.cn/Gitlink/forgeplus/issues/3966
2024-01-15 15:06:36 +08:00
徐晓伟 35dabb81b3 🐛 修正发布 gitlink
https://www.gitlink.org.cn/Gitlink/forgeplus/issues/3966
2024-01-15 14:53:11 +08:00
徐晓伟 ea11b796e1 📝 add GOPROXY 2024-01-15 14:51:47 +08:00
徐晓伟 caa84c2068 👷 add framagit 2023-12-11 09:04:14 +08:00
徐晓伟 24c0ee993d ⬆️ github.com/urfave/cli/v2 from v2.25.7 to v2.26.0 2023-12-11 08:59:32 +08:00
徐晓伟 9d07b27741 👷 gcr.io/kaniko-project/executor
https://docs.gitlab.cn/jh/ci/docker/using_kaniko.html#%E4%BD%BF%E7%94%A8-kaniko-%E6%9E%84%E5%BB%BA-docker-%E9%95%9C%E5%83%8F
https://github.com/GoogleContainerTools/kaniko#example-ci-pipeline-gitlab
2023-12-04 23:30:05 +08:00
徐晓伟 01aa03ace4 👷 --tar-path
https://docs.gitlab.cn/jh/ci/docker/using_kaniko.html#%E4%BD%BF%E7%94%A8-kaniko-%E6%9E%84%E5%BB%BA-docker-%E9%95%9C%E5%83%8F
https://github.com/GoogleContainerTools/kaniko#example-ci-pipeline-gitlab
2023-12-04 23:07:55 +08:00
徐晓伟 cb2ab5233c 👷 /kaniko/.docker/config.json
https://docs.gitlab.cn/jh/ci/docker/using_kaniko.html#%E4%BD%BF%E7%94%A8-kaniko-%E6%9E%84%E5%BB%BA-docker-%E9%95%9C%E5%83%8F
https://github.com/GoogleContainerTools/kaniko#example-ci-pipeline-gitlab
2023-12-04 22:55:07 +08:00
徐晓伟 39e00c69ba 👷 gcr.io/kaniko-project/executor
https://docs.gitlab.cn/jh/ci/docker/using_kaniko.html#%E4%BD%BF%E7%94%A8-kaniko-%E6%9E%84%E5%BB%BA-docker-%E9%95%9C%E5%83%8F
https://github.com/GoogleContainerTools/kaniko#example-ci-pipeline-gitlab
2023-12-04 22:42:30 +08:00
徐晓伟 62a99a9508 Revert "👷 DOCKER_HOST: tcp://$HOSTNAME:2375"
This reverts commit 8e4320f36d.
2023-12-04 22:00:15 +08:00
徐晓伟 8e4320f36d 👷 DOCKER_HOST: tcp://$HOSTNAME:2375 2023-12-04 21:55:33 +08:00
徐晓伟 9bb887713f 👷 delete expire_in 2023-12-04 21:49:01 +08:00
徐晓伟 bc08797cb7 📝 补充文档参数 2023-12-04 13:11:16 +08:00
徐晓伟 136d233b88 删除极狐,gitlink 新增产物导出,gitee 使用 gitlink 产物 2023-12-04 13:01:53 +08:00
徐晓伟 9b79bf6a94 👷 删除极狐 2023-12-04 12:28:55 +08:00
徐晓伟 e1b20d9d5c 👷 修正仓库地址 2023-12-04 12:28:25 +08:00
徐晓伟 444032ecb1 👷 使用阿里云镜像替换极狐镜像 2023-12-04 12:26:41 +08:00
徐晓伟 b070dfbf64 新增 LoongArch 64-bit
https://go.dev/doc/go1.19#ports
2023-12-04 08:45:50 +08:00
13 changed files with 304 additions and 199 deletions

View File

@ -16,7 +16,7 @@ workflow:
name: git clone name: git clone
task: git_clone@1.2.9 task: git_clone@1.2.9
input: input:
remote_url: '"https://jihulab.com/xuxiaowei-com-cn/cicd-release.git"' remote_url: '"https://gitlink.org.cn/xuxiaowei-com-cn/cicd-release.git"'
ref: '"refs/heads/main"' ref: '"refs/heads/main"'
commit_id: '""' commit_id: '""'
depth: 1 depth: 1
@ -24,7 +24,7 @@ workflow:
- start - start
- ref: build_0 - ref: build_0
name: build name: build
image: registry.jihulab.com/xuxiaowei-com-cn/cicd-release/golang:1.21 image: registry.cn-qingdao.aliyuncs.com/xuxiaowei/public:golang_1.21
env: env:
WORKSPACE: git_clone_0.git_path WORKSPACE: git_clone_0.git_path
script: script:
@ -36,12 +36,13 @@ workflow:
- go test ./... -v - go test ./... -v
- go run main.go - go run main.go
- go build -o buildinfo/buildinfo buildinfo/buildinfo.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=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=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=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=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=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=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=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 --version
- ./cicd-release-linux-amd64 - ./cicd-release-linux-amd64
needs: needs:

View File

@ -35,10 +35,10 @@ jobs:
# 获取所有的代码历史记录,包括分支和标签 # 获取所有的代码历史记录,包括分支和标签
fetch-depth: 0 fetch-depth: 0
- name: Set up Go #- name: Set up Go
uses: actions/setup-go@v4 # uses: actions/setup-go@v4
with: # with:
go-version: '1.20' # go-version: '1.20'
- name: Set Current Date ENV - name: Set Current Date ENV
run: | run: |
@ -77,12 +77,13 @@ jobs:
- name: Build - name: Build
run: | run: |
go build -o buildinfo/buildinfo buildinfo/buildinfo.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=$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=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=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=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=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=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=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=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 --version
./cicd-release-linux-amd64 ./cicd-release-linux-amd64
@ -100,6 +101,7 @@ jobs:
cicd-release-linux-arm64 cicd-release-linux-arm64
cicd-release-darwin-amd64 cicd-release-darwin-amd64
cicd-release-darwin-arm64 cicd-release-darwin-arm64
cicd-release-loong64
release-github: release-github:
@ -130,7 +132,7 @@ jobs:
- name: Release GitHub - name: Release GitHub
run: | 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: release-gitlab:
needs: build needs: build
@ -160,7 +162,14 @@ jobs:
- name: Release GitLab - name: Release GitLab
run: | 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 Artifactsgitlab-release-assets.json
uses: actions/upload-artifact@v3
with:
name: gitlab-release-assets
path: |
gitlab-release-assets.json
release-gitlink: release-gitlink:
needs: build needs: build
@ -190,10 +199,19 @@ jobs:
- name: Release GitLink - name: Release GitLink
run: | 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: - name: Upload Artifactsgitlink-release-assets.json
needs: build 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 runs-on: ubuntu-latest
steps: steps:
@ -218,21 +236,20 @@ jobs:
- name: ls -l - name: ls -l
run: ls -l run: ls -l
- name: Release JiHuLab - name: Download Artifactsgitlab-release-assets.json
run: | uses: actions/download-artifact@v3
./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 Artifactscicd-release-assets.json
uses: actions/upload-artifact@v3
with: with:
name: cicd-release-assets name: gitlab-release-assets
path: | path: .
cicd-release-assets.json
- 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: release-gitee:
needs: needs:
- build - build
- release-jihulab - release-gitlink
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@ -257,12 +274,12 @@ jobs:
- name: ls -l - name: ls -l
run: ls -l run: ls -l
- name: Download Artifactscicd-release-assets.json - name: Download Artifactsgitlink-release-assets.json
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
name: cicd-release-assets name: gitlink-release-assets
path: . path: .
- name: Release Gitee - name: Release Gitee
run: | 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

View File

@ -18,68 +18,32 @@ build:golang:1.21:
- go test ./... -v - go test ./... -v
- go run main.go - go run main.go
- go build -o buildinfo/buildinfo buildinfo/buildinfo.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=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=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=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=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=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=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=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 --version
- ./cicd-release-linux-amd64 - ./cicd-release-linux-amd64
artifacts: artifacts:
name: "${CI_JOB_NAME}" name: "${CI_JOB_NAME}"
expire_in: 3 day
paths: paths:
- cicd-release-windows-* - cicd-release-*
- cicd-release-linux-*
- cicd-release-darwin-*
build:docker: build:docker:
stage: build:docker stage: build:docker
needs: needs:
- job: build:golang:1.21 - job: build:golang:1.21
artifacts: true artifacts: true
image: docker:24.0.6 image:
variables: name: gcr.io/kaniko-project/executor:debug
DOCKER_TLS_CERTDIR: "" entrypoint: [ "" ]
DOCKER_HOST: tcp://docker:2375
services:
- name: docker:24.0.6-dind
alias: docker
before_script: before_script:
- set +e - echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"$(printf "%s:%s" "${DOCKER_USERNAME}" "${DOCKER_PASSWORD}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
- 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
script: script:
- cp cicd-release-linux-amd64 docker/debian/ - 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 - if [ "$CI_COMMIT_TAG" ]; then
tag="$CI_COMMIT_TAG"; tag="$CI_COMMIT_TAG";
tag_hub="$CI_COMMIT_TAG-debian"; tag_hub="$CI_COMMIT_TAG-debian";
@ -89,15 +53,14 @@ build:docker:
fi fi
- echo "tag=$tag" - echo "tag=$tag"
- echo "tag_hub=$tag_hub" - 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 /kaniko/executor
- docker images --context "${CI_PROJECT_DIR}/docker/debian"
- docker push $CI_REGISTRY_IMAGE/cicd-release-debian:$tag --dockerfile "${CI_PROJECT_DIR}/docker/debian/Dockerfile"
- docker push $DOCKER_USERNAME/cicd-release:$tag_hub --destination "${DOCKER_USERNAME}/cicd-release:${tag_hub}"
- docker save -o cicd-release-dev-debian-$CI_PIPELINE_ID.tar $CI_REGISTRY_IMAGE/cicd-release-debian:$tag --tar-path "${CI_PROJECT_DIR}/docker/debian/cicd-release-dev-debian-$CI_PIPELINE_ID.tar"
artifacts: artifacts:
name: "${CI_JOB_NAME}" name: "${CI_JOB_NAME}"
expire_in: 3 day
paths: paths:
- docker/debian/*.tar - docker/debian/*.tar
@ -122,56 +85,21 @@ build:golang:1.21-alpine3.18:
- ./cicd-release-linux-alpine-amd64 - ./cicd-release-linux-alpine-amd64
artifacts: artifacts:
name: "${CI_JOB_NAME}" name: "${CI_JOB_NAME}"
expire_in: 3 day
paths: paths:
- cicd-release-linux-* - cicd-release-*
build:docker:alpine3.18: build:docker:alpine3.18:
stage: build:docker stage: build:docker
needs: needs:
- job: build:golang:1.21-alpine3.18 - job: build:golang:1.21-alpine3.18
artifacts: true artifacts: true
image: docker:24.0.6 image:
variables: name: gcr.io/kaniko-project/executor:debug
DOCKER_TLS_CERTDIR: "" entrypoint: [ "" ]
DOCKER_HOST: tcp://docker:2375
services:
- name: docker:24.0.6-dind
alias: docker
before_script: before_script:
- set +e - echo "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"$(printf "%s:%s" "${DOCKER_USERNAME}" "${DOCKER_PASSWORD}" | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
- 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
script: script:
- cp cicd-release-linux-alpine-amd64 docker/alpine/ - 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 - if [ "$CI_COMMIT_TAG" ]; then
tag="$CI_COMMIT_TAG"; tag="$CI_COMMIT_TAG";
tag_hub="$CI_COMMIT_TAG-alpine"; tag_hub="$CI_COMMIT_TAG-alpine";
@ -181,15 +109,14 @@ build:docker:alpine3.18:
fi fi
- echo "tag=$tag" - echo "tag=$tag"
- echo "tag_hub=$tag_hub" - 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 /kaniko/executor
- docker images --context "${CI_PROJECT_DIR}/docker/alpine"
- docker push $CI_REGISTRY_IMAGE/cicd-release-alpine:$tag --dockerfile "${CI_PROJECT_DIR}/docker/alpine/Dockerfile"
- docker push $DOCKER_USERNAME/cicd-release:$tag_hub --destination "${DOCKER_USERNAME}/cicd-release:${tag_hub}"
- docker save -o cicd-release-dev-alpine-$CI_PIPELINE_ID.tar $CI_REGISTRY_IMAGE/cicd-release-alpine:$tag --tar-path "${CI_PROJECT_DIR}/docker/alpine/cicd-release-dev-alpine-$CI_PIPELINE_ID.tar"
artifacts: artifacts:
name: "${CI_JOB_NAME}" name: "${CI_JOB_NAME}"
expire_in: 3 day
paths: paths:
- docker/alpine/*.tar - docker/alpine/*.tar

View File

@ -110,6 +110,7 @@
1. Linux amd64、arm64 1. Linux amd64、arm64
2. Windows amd64、arm64 2. Windows amd64、arm64
3. Mac amd64、arm64 3. Mac amd64、arm64
4. LoongArch 64-bit
# 构建 # 构建
@ -119,19 +120,19 @@
## 下载 ## 下载
1. [gitee](https://gitee.com/xuxiaowei-com-cn/cicd-release/releases) 1. [gitee](https://gitee.com/xuxiaowei-com-cn/cicd-release/releases)
2. [jihulab](https://jihulab.com/xuxiaowei-com-cn/cicd-release/-/releases) 2. [gitlab](https://gitlab.com/xuxiaowei-com-cn/cicd-release/-/releases)
3. [gitlab](https://gitlab.com/xuxiaowei-com-cn/cicd-release/-/releases) 3. [github](https://github.com/xuxiaowei-com-cn/cicd-release/releases)
4. [github](https://github.com/xuxiaowei-com-cn/cicd-release/releases) 4. [gitlink](https://gitlink.org.cn/xuxiaowei-com-cn/cicd-release/releases)
5. [gitlink](https://gitlink.org.cn/xuxiaowei-com-cn/cicd-release/releases)
## 支持的功能 ## 支持的功能
1. 一键发布到 github可包含产物上传 1. 一键发布到 github可包含产物上传
2. 一键发布到 gitlab可包含产物上传可自定义域名支持自建 gitlab支持将产物文件名、链接导出为 map可供 gitee 使用 2. 一键发布到 gitlab可包含产物上传可自定义域名支持自建 gitlab支持将产物文件名、链接导出为 map可供 gitee 使用
3. 一键发布到 gitee由于 gitee 暂不支持提供上传产物的 API 接口, 3. 一键发布到 gitee由于 gitee 暂不支持提供上传产物的 API 接口,
本工具支持提供 json 文件map 形式,键:代表文件名,值:代表下载链接)作为产物,本项目使用 [极狐](https://jihulab.com) 作为 本工具支持提供 json 文件map 形式,键:代表文件名,值:代表下载链接)作为产物,本项目使用 [GitLink](https://www.gitlink.org.cn) 作为
gitee 产物链接 gitee 产物链接
4. 一键发布到 gitlink可包含产物上传需要等到官方开放 token 功能,或者联系官方人员申请 token 才能使用) 4. 一键发布到 gitlink可包含产物上传需要等到官方开放 token 功能,或者联系官方人员申请 token 才能使用),
本工具支持提供 json 文件map 形式,键:代表文件名,值:代表下载链接)作为产物
## 开发命令 ## 开发命令
@ -140,7 +141,9 @@
```shell ```shell
go env -w GOPROXY=https://goproxy.cn,direct go env -w GOPROXY=https://goproxy.cn,direct
# go env -w GOPROXY=https://proxy.golang.org,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.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/urfave/cli/v2
go get -u github.com/xuxiaowei-com-cn/git-go@main go get -u github.com/xuxiaowei-com-cn/git-go@main
go get -u github.com/xuxiaowei-com-cn/go-gitlink/v2 go get -u github.com/xuxiaowei-com-cn/go-gitlink/v2
@ -241,6 +244,9 @@ OPTIONS:
--gitlab-export-assets-file-name value Gitlab 导出资源文件名称。 --gitlab-export-assets-file-name value Gitlab 导出资源文件名称。
主要用于发布到 Gitee 时在版本发布中新增产物下载地址Gitee 没有上传产物的 API 主要用于发布到 Gitee 时在版本发布中新增产物下载地址Gitee 没有上传产物的 API
导出格式为 map代表文件名代表下载链接 导出格式为 map代表文件名代表下载链接
--gitlab-import-assets-file-name value Gitlab 导入资源文件名称。
主要用于发布到未启用 GitLab 软件包库时,发布中产物下载地址。
导入格式为 map代表文件名代表下载链接
--github-repository value Github 仓库。 --github-repository value Github 仓库。
https://github.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为xuxiaowei-com-cn/cicd-release [%GITHUB_REPOSITORY%] https://github.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为xuxiaowei-com-cn/cicd-release [%GITHUB_REPOSITORY%]
--github-username value Github 用户名 [%GITHUB_ACTOR%] --github-username value Github 用户名 [%GITHUB_ACTOR%]
@ -250,6 +256,10 @@ OPTIONS:
--gitlink-username value Gitlink 用户名 --gitlink-username value Gitlink 用户名
--gitlink-token value Gitlink Token --gitlink-token value Gitlink Token
--gitlink-cookie value Gitlink Cookie --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 --help, -h show help
``` ```
@ -295,6 +305,9 @@ OPTIONS:
--gitlab-export-assets-file-name value Gitlab 导出资源文件名称。 --gitlab-export-assets-file-name value Gitlab 导出资源文件名称。
主要用于发布到 Gitee 时在版本发布中新增产物下载地址Gitee 没有上传产物的 API 主要用于发布到 Gitee 时在版本发布中新增产物下载地址Gitee 没有上传产物的 API
导出格式为 map代表文件名代表下载链接 导出格式为 map代表文件名代表下载链接
--gitlab-import-assets-file-name value Gitlab 导入资源文件名称。
主要用于发布到未启用 GitLab 软件包库时,发布中产物下载地址。
导入格式为 map代表文件名代表下载链接
--github-repository value Github 仓库。 --github-repository value Github 仓库。
https://github.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为xuxiaowei-com-cn/cicd-release [%GITHUB_REPOSITORY%] https://github.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为xuxiaowei-com-cn/cicd-release [%GITHUB_REPOSITORY%]
--github-username value Github 用户名 [%GITHUB_ACTOR%] --github-username value Github 用户名 [%GITHUB_ACTOR%]
@ -304,6 +317,10 @@ OPTIONS:
--gitlink-username value Gitlink 用户名 --gitlink-username value Gitlink 用户名
--gitlink-token value Gitlink Token --gitlink-token value Gitlink Token
--gitlink-cookie value Gitlink Cookie --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 --help, -h show help
``` ```
@ -353,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 . 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 - Darwin
- amd64 - amd64
```shell ```shell

View File

@ -6,6 +6,7 @@ import (
"log" "log"
"math/big" "math/big"
"net/url" "net/url"
"os"
"os/exec" "os/exec"
"strings" "strings"
) )
@ -71,7 +72,10 @@ func GitPushTag(instance string, repository string, username, token, tag string)
log.Printf("Git 推送远端 标签 %s 开始\n", tag) log.Printf("Git 推送远端 标签 %s 开始\n", tag)
cmdPush := exec.Command("git", "push", origin, 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 { if err != nil {
log.Printf("Git 推送远端 %s 标签 %s 异常:\n%s", origin, tag, err) log.Printf("Git 推送远端 %s 标签 %s 异常:\n%s", origin, tag, err)
return err return err

View File

@ -42,6 +42,7 @@ func Gitee(prerelease bool, context *cli.Context) error {
var giteeUsername = context.String(constant.GiteeUsername) var giteeUsername = context.String(constant.GiteeUsername)
var giteeToken = context.String(constant.GiteeToken) var giteeToken = context.String(constant.GiteeToken)
var gitlabExportAssetsFileName = context.String(constant.GitlabExportAssetsFileName) var gitlabExportAssetsFileName = context.String(constant.GitlabExportAssetsFileName)
var gitlinkExportAssetsFileName = context.String(constant.GitlinkExportAssetsFileName)
log.Printf("是否是预发布版本:%v", prerelease) log.Printf("是否是预发布版本:%v", prerelease)
log.Printf("发布到 Gitee路径%s", giteeRepository) 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 { if err != nil {
return err return err
} }
@ -156,7 +157,7 @@ func GiteeGetReleases(giteeRepository, giteeToken string) error {
// GiteeReleases // GiteeReleases
// 发布 // 发布
func GiteeReleases(prerelease bool, giteeRepository string, releaseName string, releaseBody string, tag string, 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 != "" { if gitlabExportAssetsFileName != "" {
jsonData, err := os.ReadFile(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) sha, err := GitTagSha(tag)
if err != nil { if err != nil {
return nil return nil

View File

@ -48,6 +48,7 @@ func Gitlab(prerelease bool, context *cli.Context) error {
var gitlabUsername = context.String(constant.GitlabUsername) var gitlabUsername = context.String(constant.GitlabUsername)
var gitlabToken = context.String(constant.GitlabToken) var gitlabToken = context.String(constant.GitlabToken)
var gitlabExportAssetsFileName = context.String(constant.GitlabExportAssetsFileName) var gitlabExportAssetsFileName = context.String(constant.GitlabExportAssetsFileName)
var gitlabImportAssetsFileName = context.String(constant.GitlabImportAssetsFileName)
log.Printf("是否是预发布版本:%v", prerelease) log.Printf("是否是预发布版本:%v", prerelease)
log.Printf("发布到 GitLab实例%s路径%s", gitlabInstance, gitlabRepository) 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, err = GitlabReleases(releaseName, releaseBody, tag, milestones,
baseUrl, gitlabApi, gitlabRepositoryEscape, gitlabToken, genericPackages) baseUrl, gitlabApi, gitlabRepositoryEscape, gitlabToken, genericPackages, gitlabImportAssetsFileName)
if err != nil { if err != nil {
return err return err
} }
@ -219,7 +220,7 @@ func GitlabGetReleases(getReleasesUrl string, gitlabToken string) error {
// 发布 // 发布
func GitlabReleases(releaseName string, releaseBody string, tag string, milestones []string, func GitlabReleases(releaseName string, releaseBody string, tag string, milestones []string,
baseUrl *url.URL, gitlabApi string, gitlabRepositoryEscape string, gitlabToken string, baseUrl *url.URL, gitlabApi string, gitlabRepositoryEscape string, gitlabToken string,
genericPackages map[string]interface{}) error { genericPackages map[string]interface{}, gitlabImportAssetsFileName string) error {
data := Data{ data := Data{
Name: releaseName, Name: releaseName,
@ -238,6 +239,31 @@ func GitlabReleases(releaseName string, releaseBody string, tag string, mileston
assets.Links = append(assets.Links, link) 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 data.Assets = assets
jsonData, err := json.Marshal(data) jsonData, err := json.Marshal(data)

View File

@ -1,12 +1,16 @@
package api package api
import ( import (
"encoding/json"
"errors" "errors"
"fmt" "fmt"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
"github.com/xuxiaowei-com-cn/cicd-release/constant" "github.com/xuxiaowei-com-cn/cicd-release/constant"
"github.com/xuxiaowei-com-cn/go-gitlink/v2" "github.com/xuxiaowei-com-cn/go-gitlink/v2"
"log" "log"
"net/url"
"os"
"path/filepath"
"strings" "strings"
) )
@ -22,12 +26,19 @@ func Gitlink(prerelease bool, context *cli.Context) error {
var gitlinkToken = context.String(constant.GitlinkToken) var gitlinkToken = context.String(constant.GitlinkToken)
var gitlinkCookie = context.String(constant.GitlinkCookie) var gitlinkCookie = context.String(constant.GitlinkCookie)
var draft = context.Bool(constant.Draft) var draft = context.Bool(constant.Draft)
var gitlinkExportAssetsFileName = context.String(constant.GitlinkExportAssetsFileName)
var gitlinkAttachmentsPrefix = context.String(constant.GitlinkAttachmentsPrefix)
log.Printf("是否是预发布版本:%v", prerelease) log.Printf("是否是预发布版本:%v", prerelease)
log.Printf("发布到 Gitlink路径%s", gitlinkRepository) log.Printf("发布到 Gitlink路径%s", gitlinkRepository)
_, err := url.Parse(gitlinkAttachmentsPrefix)
if err != nil {
return err
}
// 检查发布 // 检查发布
err := GitlinkGetReleases(gitlinkCookie) err = GitlinkGetReleases(gitlinkCookie)
if err != nil { if err != nil {
return err 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 { if err != nil {
return err 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 { if err != nil {
return err return err
} }
@ -81,35 +92,62 @@ func GitlinkGetTag(gitlinkCookie string, tag string) error {
// GitlinkAttachments // 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("") gitClient, err := gitlink.NewClient("")
if err != nil { if err != nil {
return nil, err return nil, nil, err
} }
gitClient.Cookie = gitlinkCookie gitClient.Cookie = gitlinkCookie
var attachmentsIds []int64 var attachmentIds []string
var attachments = make(map[string]interface{})
for _, artifact := range artifacts { for _, artifact := range artifacts {
attachmentsData, _, err := gitClient.Attachments.PostAttachments(artifact, "") attachmentsData, _, err := gitClient.Attachments.PostAttachments(artifact, "")
if err != nil { if err != nil {
return nil, err return nil, nil, err
} }
if attachmentsData.Status == 0 { if attachmentsData.Status == nil || *attachmentsData.Status == 0 {
attachmentsIds = append(attachmentsIds, attachmentsData.Id) attachmentIds = append(attachmentIds, attachmentsData.Id)
fileName := filepath.Base(artifact)
attachments[fileName] = attachmentsData.Url
} else { } 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 // 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("") gitClient, err := gitlink.NewClient("")
if err != nil { if err != nil {
@ -136,7 +174,7 @@ func GitlinkReleases(prerelease bool, releaseName string, releaseBody string, ta
} }
requestBody := &gitlink.PostReleasesRequestBody{ requestBody := &gitlink.PostReleasesRequestBody{
AttachmentIds: attachments, AttachmentIds: attachmentIds,
Body: releaseBody, Body: releaseBody,
Name: releaseName, Name: releaseName,
TagName: tag, TagName: tag,

View File

@ -1,30 +1,33 @@
package constant package constant
const ( const (
PreRelease = "pre-release" // 预发布 PreRelease = "pre-release" // 预发布
Release = "release" // 发布 Release = "release" // 发布
ReleaseName = "release-name" // 发布名称 ReleaseName = "release-name" // 发布名称
ReleaseBody = "release-body" // 发布详情 ReleaseBody = "release-body" // 发布详情
Tag = "tag" // 发布标签 Tag = "tag" // 发布标签
Draft = "draft" // 草稿 Draft = "draft" // 草稿
PackageName = "package-name" // 包名只能包含小写字母az、大写字母AZ、数字0-9、点.)、连字符(-或下划线_ PackageName = "package-name" // 包名只能包含小写字母az、大写字母AZ、数字0-9、点.)、连字符(-或下划线_
Milestones = "milestones" // 发布里程碑 Milestones = "milestones" // 发布里程碑
AutoCreateTag = "auto-create-tag" // 自动创建不存在的标签 AutoCreateTag = "auto-create-tag" // 自动创建不存在的标签
Artifacts = "artifacts" // 发布产物 Artifacts = "artifacts" // 发布产物
GithubUsername = "github-username" // Github 用户名 GithubUsername = "github-username" // Github 用户名
GithubToken = "github-token" // Github Token GithubToken = "github-token" // Github Token
GithubRepository = "github-repository" // Github 仓库https://github.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为xuxiaowei-com-cn/cicd-release GithubRepository = "github-repository" // Github 仓库https://github.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为xuxiaowei-com-cn/cicd-release
GiteeUsername = "gitee-username" // Gitee 用户名 GiteeUsername = "gitee-username" // Gitee 用户名
GiteeToken = "gitee-token" // Gitee Token GiteeToken = "gitee-token" // Gitee Token
GiteeRepository = "gitee-repository" // Gitee 仓库https://gitee.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为xuxiaowei-com-cn/cicd-release GiteeRepository = "gitee-repository" // Gitee 仓库https://gitee.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为xuxiaowei-com-cn/cicd-release
GitlabUsername = "gitlab-username" // Gitlab 用户名 GitlabUsername = "gitlab-username" // Gitlab 用户名
GitlabToken = "gitlab-token" // Gitlab Token GitlabToken = "gitlab-token" // Gitlab Token
GitlabInstance = "gitlab-instance" // Gitlab 实例(协议 + 域名) GitlabInstance = "gitlab-instance" // Gitlab 实例(协议 + 域名)
GitlabApi = "gitlab-api" // Gitlab API GitlabApi = "gitlab-api" // Gitlab API
GitlabRepository = "gitlab-repository" // Gitee 仓库https://gitlab.com/xuxiaowei-com-cn/cicd-release.git 仓库应该为xuxiaowei-com-cn/cicd-release 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 导出资源文件名称 GitlabExportAssetsFileName = "gitlab-export-assets-file-name" // Gitlab 导出资源文件名称
GitlinkUsername = "gitlink-username" // gitlink 用户名 GitlabImportAssetsFileName = "gitlab-import-assets-file-name" // Gitlab 导入资源文件名称
GitlinkToken = "gitlink-token" // gitlink Token GitlinkUsername = "gitlink-username" // gitlink 用户名
GitlinkCookie = "gitlink-cookie" // gitlink Cookie GitlinkToken = "gitlink-token" // gitlink Token
GitlinkRepository = "gitlink-repository" // gitlink 仓库https://gitlink.org.cn/xuxiaowei-com-cn/cicd-release.git 仓库应该为xuxiaowei-com-cn/cicd-release 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
) )

View File

@ -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 { func GitlinkRepositoryFlag(required bool) cli.Flag {
return &cli.StringFlag{ return &cli.StringFlag{
Name: constant.GitlinkRepository, 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 { func GiteeFlag() []cli.Flag {
return []cli.Flag{ return []cli.Flag{
ReleaseNameFlag(true), ReleaseNameFlag(true),
@ -208,6 +230,7 @@ func GiteeFlag() []cli.Flag {
TagFlag(true), TagFlag(true),
AutoCreateTagFlag(), AutoCreateTagFlag(),
GitlabExportAssetsNameFlag(), GitlabExportAssetsNameFlag(),
GitlinkExportAssetsFileNameFlag(),
GiteeRepositoryFlag(true), GiteeRepositoryFlag(true),
GiteeUsername(true), GiteeUsername(true),
@ -231,6 +254,7 @@ func GitlabFlag() []cli.Flag {
GitlabUsernameFlag(true), GitlabUsernameFlag(true),
GitlabTokenFlag(true), GitlabTokenFlag(true),
GitlabExportAssetsNameFlag(), GitlabExportAssetsNameFlag(),
GitlabImportAssetsFileNameFlag(),
} }
} }
@ -256,6 +280,8 @@ func GitlinkFlag() []cli.Flag {
TagFlag(true), TagFlag(true),
AutoCreateTagFlag(), AutoCreateTagFlag(),
ArtifactsFlag(), ArtifactsFlag(),
GitlinkExportAssetsFileNameFlag(),
GitlinkAttachmentsPrefixFlag(),
GitlinkRepositoryFlag(true), GitlinkRepositoryFlag(true),
GitlinkUsernameFlag(true), GitlinkUsernameFlag(true),
@ -286,6 +312,7 @@ func CommonFlag() []cli.Flag {
GitlabUsernameFlag(false), GitlabUsernameFlag(false),
GitlabTokenFlag(false), GitlabTokenFlag(false),
GitlabExportAssetsNameFlag(), GitlabExportAssetsNameFlag(),
GitlabImportAssetsFileNameFlag(),
GithubRepositoryFlag(false), GithubRepositoryFlag(false),
GithubUsernameFlag(false), GithubUsernameFlag(false),
@ -295,5 +322,7 @@ func CommonFlag() []cli.Flag {
GitlinkUsernameFlag(false), GitlinkUsernameFlag(false),
GitlinkTokenFlag(false), GitlinkTokenFlag(false),
GitlinkCookieFlag(false), GitlinkCookieFlag(false),
GitlinkExportAssetsFileNameFlag(),
GitlinkAttachmentsPrefixFlag(),
} }
} }

4
go.mod
View File

@ -3,9 +3,9 @@ module github.com/xuxiaowei-com-cn/cicd-release
go 1.21 go 1.21
require ( 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/git-go v0.0.0-20231127015559-635f5e3143dc
github.com/xuxiaowei-com-cn/go-gitlink/v2 v2.1.5 github.com/xuxiaowei-com-cn/go-gitlink/v2 v2.1.7
gopkg.in/yaml.v3 v3.0.1 gopkg.in/yaml.v3 v3.0.1
) )

12
go.sum
View File

@ -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 h1:qMCsGGgs+MAzDFyp9LpAe1Lqy/fY/qCovCm0qnXZOBM=
github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= 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/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 h1:X2ev0eStA3AbceY54o37/0PQ/UWqKEiiO2dKL5OPaFM=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= 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-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 h1:bJj+Pj19UZMIweq/iie+1u5YCdGrnxCT9yvm0e+Nd5M=
github.com/hashicorp/go-retryablehttp v0.7.5/go.mod h1:Jy/gPYAdjqffZ/yFGCFV2doI5wjtH1ewM9u8iYVjtX8= 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/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 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= 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/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/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
github.com/urfave/cli/v2 v2.25.7/go.mod h1:8qnjx1vcq5s2/wpsqoZFndg2CE5tNFyrTvS6SinrnYQ= 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 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= 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 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/git-go v0.0.0-20231127015559-635f5e3143dc/go.mod h1:1EL7YDsw6C+ctxYYqfBHz2Q0CTK6qjZmq//DYFp4kmo=
github.com/xuxiaowei-com-cn/go-gitlink/v2 v2.1.5 h1:8LD4+YdFXEmFiiiNGLN8XOZhsxBRv6sScSQ7optnCvY= github.com/xuxiaowei-com-cn/go-gitlink/v2 v2.1.7 h1:LiEmRdaNuwD+ejiE7J3Dxu0xYGOfsxJl8GR3c9WqDq4=
github.com/xuxiaowei-com-cn/go-gitlink/v2 v2.1.5/go.mod h1:u7XGA9i8nHbmzN+bdFcMN9z7Yxe3/qOyS8I9NblK+ZU= 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= 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 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

View File

@ -192,7 +192,7 @@ sync-github:
# 允许失败 # 允许失败
allow_failure: true allow_failure: true
sync-jihulab: sync-framagit:
stage: sync stage: sync
variables: variables:
GIT_DEPTH: 0 # 取消浅层克隆 GIT_DEPTH: 0 # 取消浅层克隆
@ -202,18 +202,26 @@ sync-jihulab:
- git config --global user.name $GITLAB_USER_NAME - git config --global user.name $GITLAB_USER_NAME
- git config --global user.email - git config --global user.email
- git config --global user.name - 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_BRANCH
- echo 当前标签:$CI_COMMIT_TAG - echo 当前标签:$CI_COMMIT_TAG
- if [ "$CI_COMMIT_BRANCH" ]; then - if [ "$CI_COMMIT_BRANCH" ]; then
git checkout -b $CI_COMMIT_BRANCH; git checkout -b $CI_COMMIT_BRANCH;
git pull --progress -v --no-rebase jihulab $CI_COMMIT_BRANCH || echo 远端不存在$CI_COMMIT_BRANCH分支; git pull --progress -v --no-rebase framagit $CI_COMMIT_BRANCH || echo 远端不存在$CI_COMMIT_BRANCH分支;
git push -u jihulab $CI_COMMIT_BRANCH; git push -u framagit $CI_COMMIT_BRANCH;
fi fi
- if [ "$CI_COMMIT_TAG" ]; then - if [ "$CI_COMMIT_TAG" ]; then
git push -u jihulab $CI_COMMIT_TAG; git push -u framagit $CI_COMMIT_TAG;
fi fi
rules: rules:
# GitCode 实例不执行
- if: $CI_SERVER_HOST == 'gitcode.net'
# 不执行
when: never
# framagit.org 不同步到自己
- if: $CI_SERVER_HOST == 'framagit.org'
# 不执行
when: never
# 匹配以 dependabot 开头的分支 # 匹配以 dependabot 开头的分支
- if: $CI_SERVER_HOST == 'gitlab.helm.xuxiaowei.cn' && $CI_COMMIT_BRANCH =~ /^dependabot*/ - if: $CI_SERVER_HOST == 'gitlab.helm.xuxiaowei.cn' && $CI_COMMIT_BRANCH =~ /^dependabot*/
# 不执行 # 不执行