Compare commits

..

5 Commits
test ... main

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
7 changed files with 106 additions and 11 deletions

View File

@ -162,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 --artifacts=cicd-release-loong64
./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:
needs: build
@ -192,14 +199,52 @@ 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 --artifacts=cicd-release-loong64 --gitlink-cookie=${{ secrets.PRIVATE_GITLINK_COOKIE }} --gitlink-export-assets-file-name=cicd-release-assets.json
./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
- name: Upload Artifactscicd-release-assets.json
- name: Upload Artifactsgitlink-release-assets.json
uses: actions/upload-artifact@v3
with:
name: cicd-release-assets
name: gitlink-release-assets
path: |
cicd-release-assets.json
gitlink-release-assets.json
release-framagit:
needs:
- build
- release-gitlab
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
# 获取所有的代码历史记录,包括分支和标签
fetch-depth: 0
- name: Download Artifacts
uses: actions/download-artifact@v3
with:
name: cicd-release
path: .
- name: ls -l
run: ls -l
- name: chmod +x cicd-release-linux-amd64
run: chmod +x cicd-release-linux-amd64
- name: ls -l
run: ls -l
- name: Download Artifactsgitlab-release-assets.json
uses: actions/download-artifact@v3
with:
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:
@ -229,12 +274,12 @@ jobs:
- name: ls -l
run: ls -l
- name: Download Artifactscicd-release-assets.json
- name: Download Artifactsgitlink-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 }} --gitlink-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

@ -244,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%]
@ -302,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%]

View File

@ -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

View File

@ -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)

View File

@ -23,6 +23,7 @@ const (
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

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 {
return &cli.StringFlag{
Name: constant.GitlinkRepository,
@ -247,6 +254,7 @@ func GitlabFlag() []cli.Flag {
GitlabUsernameFlag(true),
GitlabTokenFlag(true),
GitlabExportAssetsNameFlag(),
GitlabImportAssetsFileNameFlag(),
}
}
@ -304,6 +312,7 @@ func CommonFlag() []cli.Flag {
GitlabUsernameFlag(false),
GitlabTokenFlag(false),
GitlabExportAssetsNameFlag(),
GitlabImportAssetsFileNameFlag(),
GithubRepositoryFlag(false),
GithubUsernameFlag(false),

View File

@ -218,6 +218,10 @@ sync-framagit:
- 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*/
# 不执行