Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 00ce91f9ed | |||
|
|
48cb6cf5e8 | ||
|
|
5328f64726 | ||
|
|
b690745eb2 |
@ -37,12 +37,16 @@ jobs:
|
||||
- name: Extract Release Info from Git
|
||||
id: release_info
|
||||
run: |
|
||||
TAG_NAME=$(git describe --tags --abbrev=0)
|
||||
echo "tag_name=$TAG_NAME" >> $GITHUB_ENV
|
||||
|
||||
BRANCH_NAME=$(git rev-parse --abbrev-ref HEAD)
|
||||
echo "branch_name=$BRANCH_NAME" >> $GITHUB_ENV
|
||||
|
||||
COMMIT_MESSAGE=$(git log -1 --pretty=%B)
|
||||
echo "commit_message=$COMMIT_MESSAGE" >> $GITHUB_ENV
|
||||
|
||||
echo "Tag Name: $TAG_NAME"
|
||||
echo "Branch Name: $BRANCH_NAME"
|
||||
echo "Commit Message: $COMMIT_MESSAGE"
|
||||
- name: Upload to Gitea Release
|
||||
@ -53,6 +57,7 @@ jobs:
|
||||
RELEASE_DATA=$(curl -X POST -H "Authorization: token $GITEA_TOKEN" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{
|
||||
\"tag_name\": \"$GITHUB_ENV\",
|
||||
\"target_commitish\": \"$branch_name\",
|
||||
\"name\": \"$tag_name\",
|
||||
\"body\": \"$commit_message\",
|
||||
@ -63,6 +68,8 @@ jobs:
|
||||
# 提取 Release ID
|
||||
RELEASE_ID=$(echo "$RELEASE_DATA" | jq -r '.id')
|
||||
|
||||
echo "Release id is $RELEASE_ID"
|
||||
|
||||
# 上传文件
|
||||
curl -X POST -H "Authorization: token $GITEA_TOKEN" \
|
||||
-H "Content-Type: application/octet-stream" \
|
||||
|
||||
21
README.md
21
README.md
@ -1,2 +1,23 @@
|
||||
# xmake-helloworld-runner
|
||||
|
||||
runner已经部署,主要编写对象为.gitea/workflow/.yaml文件
|
||||
|
||||
当前流程为拉取container环境ubuntu-latest -> 安装xmake -> 编译 -> 打包二进制 -> gitea api申请release id -> 根据id将release文件post上传发布
|
||||
|
||||
需要注意几个事项:
|
||||
|
||||
1. runner已经完成部署,当前直接编写workflow自动触发使用即可,runner环境已配好科学上网环境,所以涉及翻墙安装的软件或者克隆的仓库不会出问题
|
||||
|
||||
2. 自己申请一个personal token作为API令牌使用,API地址参考 https://git.luo980.site/api/swagger
|
||||
|
||||
3. 后续依赖库确定的情况下,建议后续自己制作docker镜像作为base编译环境,runner机器下载后会缓存,避免再通过xmake和apt反复耗时耗流量安装环境,容器环境在编译后会自然销毁,因此下次启动时又会从base初始化
|
||||
|
||||
4. 暂且使用gitea的release作为下载地址,后续我会抽时间建立registry作为替代,release最终作为稳定版本发布使用
|
||||
|
||||
5. 及时确定当前依赖库的版本,对于不需要高版本和新特性的支持,以当前可用版本定义,后续根据时间进行测试升级依赖库版本
|
||||
|
||||
6. 当前action过程只为二进制编译,如涉及到动态库链接,或者静态编译,注意统一打包发布,解压所得开箱即用
|
||||
|
||||
7. 涉及到测试项可编写多个Action,作为每次更新可以一并进行自动化验证,防止疏漏
|
||||
|
||||
8. 当前action触发条件为push更新即开始,自己根据需要定义不同粒度
|
||||
Loading…
Reference in New Issue
Block a user