-
Notifications
You must be signed in to change notification settings - Fork 1
59 lines (50 loc) · 1.83 KB
/
Copy pathbuild-fedora.yml
File metadata and controls
59 lines (50 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
name: Build Fedora QCOW2
on:
push:
paths:
- 'Fedora.json' # 只有当 Fedora.json 文件被修改时触发
workflow_dispatch: # 手动触发
jobs:
build:
runs-on: ubuntu-latest
steps:
# Step 1: 检出代码
- name: Checkout repository
uses: actions/checkout@v3
# Step 2: 解析 Fedora.json 文件
- name: Parse Fedora.json
id: parse-fedora-json
run: |
# 使用 jq 解析 JSON 文件
NAME=$(jq -r '.name' Fedora.json)
VERSION=$(jq -r '.version' Fedora.json)
URL=$(jq -r '.url' Fedora.json)
# 设置环境变量
echo "NAME=$NAME" >> $GITHUB_ENV
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "DOWNLOAD_URL=$URL" >> $GITHUB_ENV
# Step 3: 下载 .raw.xz 文件
- name: Download Fedora raw.xz file
run: |
mkdir -p input
wget -O input/source.raw.xz "${{ env.DOWNLOAD_URL }}"
# Step 4: 安装依赖工具
- name: Install dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -y qemu-utils e2fsprogs util-linux xz-utils rsync jq
# Step 5: 转换为 qcow2 文件
- name: Convert to qcow2
run: |
mkdir -p output
TARGET_FILE="output/HiSH-image-${{ env.NAME }}-${{ env.VERSION }}.qcow2"
sudo ./convert.fedora.sh input/source.raw.xz "$TARGET_FILE"
# Step 6: 上传生成的 qcow2 文件到 Release
- name: Create Release and upload artifact
uses: softprops/action-gh-release@v1
with:
tag_name: "HiSH-image-${{ env.NAME }}-${{ env.VERSION }}"
name: "HiSH-image-${{ env.NAME }}-${{ env.VERSION }}"
files: output/HiSH-image-${{ env.NAME }}-${{ env.VERSION }}.qcow2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}