From 894aa96fef83adc80facdadb97ad378734d991fd Mon Sep 17 00:00:00 2001 From: Sving1024 Date: Sat, 3 May 2025 16:40:58 +0800 Subject: [PATCH] add gh actions --- .../workflows/generate-toml-and-release.yaml | 29 ++++++++++++++ .github/workflows/generate.py | 39 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 .github/workflows/generate-toml-and-release.yaml create mode 100644 .github/workflows/generate.py diff --git a/.github/workflows/generate-toml-and-release.yaml b/.github/workflows/generate-toml-and-release.yaml new file mode 100644 index 0000000..87fc60b --- /dev/null +++ b/.github/workflows/generate-toml-and-release.yaml @@ -0,0 +1,29 @@ +name: Generate toml config and release +on: + push: + tags: + - *.*.*.* + +jobs: + generate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: generate toml file + run: ./.github/workflows/generate.py + - uses: actions/upload-artifact@v4 + with: + name: config + path: | + ./*.json + ./*.toml + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/download-artifact@v4 + with: + path: config/ + - uses: ncipollo/release-action@v1 + with: + artifacts: "config/*.json,config/*.toml" diff --git a/.github/workflows/generate.py b/.github/workflows/generate.py new file mode 100644 index 0000000..0cab4b4 --- /dev/null +++ b/.github/workflows/generate.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +import json +import toml + + +def convert_json_to_toml(json_file_path, toml_file_path): + # 读取JSON文件 + with open(json_file_path, "r", encoding="utf-8") as f: + data = json.load(f) + + # 初始化TOML数据结构 + toml_data = {"alter_hostname": {}, "hosts": {}} + + # 处理每个条目 + for entry in data: + domains, alter_host, ip = entry + + # 处理alter_hostname部分 + for domain in domains: + toml_data["alter_hostname"][domain] = alter_host + + # 处理hosts部分 + for domain in domains: + toml_data["hosts"][domain] = ip + + # 写入TOML文件 + with open(toml_file_path, "w", encoding="utf-8") as f: + toml.dump(toml_data, f) + + +# 使用示例 +if __name__ == "__main__": + for filename_base in [ + "Cealing-Host-A", + "Cealing-Host-P", + "Cealing-Host-R", + "Cealing-Host", + ]: + convert_json_to_toml(filename_base + ".json", filename_base + ".toml")