diff --git a/.github/workflows/lifecycle.yml b/.github/workflows/lifecycle.yml index ca12792..6cb03cc 100644 --- a/.github/workflows/lifecycle.yml +++ b/.github/workflows/lifecycle.yml @@ -92,99 +92,11 @@ jobs: build_matrix = {"include": []} run_matrix = {"version": []} - build_data = [ - {"dir": "api", "java": "8"}, - # new-mc-version build data - {"dir": "1_21_10", "mc": "1.21.10", "lex": "60.0.0", "neo": "50-beta", "java": "21"}, - {"dir": "1_21_6", "mc": "1.21.8", "lex": "58.0.0", "neo": "51", "java": "21"}, - {"dir": "1_21_6", "mc": "1.21.7", "lex": "57.0.0", "neo": "25-beta", "java": "21"}, - {"dir": "1_21_6", "mc": "1.21.6", "lex": "56.0.9", "neo": "19-beta", "java": "21"}, - {"dir": "1_21_5", "mc": "1.21.5", "lex": "55.0.3", "neo": "24-beta", "java": "21"}, - {"dir": "1_21", "mc": "1.21.4", "lex": "54.0.16", "neo": "50-beta", "java": "21"}, - {"dir": "1_21", "mc": "1.21.3", "lex": "53.0.7", "neo": "11-beta", "java": "21"}, - {"dir": "1_21", "mc": "1.21.1", "lex": "52.0.2", "neo": "4", "java": "21"}, - {"dir": "1_21", "mc": "1.21", "lex": "51.0.24", "neo": "96-beta", "java": "21"}, - {"dir": "1_20_6", "mc": "1.20.6", "lex": "50.1.10", "neo": "119", "java": "21"}, - {"dir": "1_20", "mc": "1.20.4", "lex": "49.0.38", "neo": "219", "java": "17"}, - {"dir": "1_20", "mc": "1.20.3", "lex": "49.0.2", "neo": "8-beta", "java": "17"}, - {"dir": "1_20", "mc": "1.20.2", "lex": "48.1.0", "neo": "88", "java": "17"}, - {"dir": "1_20_1", "mc": "1.20.1", "lex": "47.2.23", "java": "17"}, - {"dir": "1_19", "mc": "1.19.4", "lex": "45.2.9", "java": "17"}, - {"dir": "1_19", "mc": "1.19.3", "lex": "44.1.23", "java": "17"}, - {"dir": "1_19", "mc": "1.19.2", "lex": "43.3.9", "java": "17"}, - {"dir": "1_19", "mc": "1.19.1", "lex": "42.0.9", "java": "17"}, - {"dir": "1_19", "mc": "1.19", "lex": "41.1.0", "java": "17"}, - {"dir": "1_18", "mc": "1.18.2", "lex": "40.2.18", "java": "17"}, - {"dir": "1_17", "mc": "1.17.1", "lex": "37.1.1", "java": "16"}, - {"dir": "1_16", "mc": "1.16.5", "lex": "36.2.42", "java": "8"}, - {"dir": "1_12", "mc": "1.12.2", "lex": "14.23.5.2860", "java": "8"}, - {"dir": "1_8_9", "mc": "1.8.9", "lex": "11.15.1.2318-1.8.9", "java": "8"}, - {"dir": "1_7_10", "mc": "1.7.10", "lex": "10.13.4.1614-1.7.10", "java": "8"} - ] - - run_data = [ - # new-mc-version run data - {"mc": "1.21.10", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "21"}, - {"mc": "1.21.10", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "21"}, - {"mc": "1.21.10", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "21"}, - {"mc": "1.21.8", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "21"}, - {"mc": "1.21.8", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "21"}, - {"mc": "1.21.8", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "21"}, - {"mc": "1.21.7", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "21"}, - {"mc": "1.21.7", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "21"}, - {"mc": "1.21.7", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "21"}, - {"mc": "1.21.6", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "21"}, - {"mc": "1.21.6", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "21"}, - {"mc": "1.21.6", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "21"}, - {"mc": "1.21.5", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "21"}, - {"mc": "1.21.5", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "21"}, - {"mc": "1.21.5", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "21"}, - {"mc": "1.21.4", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "21"}, - {"mc": "1.21.4", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "21"}, - {"mc": "1.21.4", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "21"}, - {"mc": "1.21.3", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "21"}, - {"mc": "1.21.3", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "21"}, - {"mc": "1.21.3", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "21"}, - {"mc": "1.21.1", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "21"}, - {"mc": "1.21.1", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "21"}, - {"mc": "1.21.1", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "21"}, - {"mc": "1.21", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "21"}, - {"mc": "1.21", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "21"}, - {"mc": "1.21", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "21"}, - {"mc": "1.20.6", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "21"}, - {"mc": "1.20.6", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "21"}, - {"mc": "1.20.6", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "21"}, - {"mc": "1.20.4", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "17"}, - {"mc": "1.20.4", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "17"}, - {"mc": "1.20.4", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "17"}, - {"mc": "1.20.3", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "17"}, - {"mc": "1.20.3", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "17"}, - {"mc": "1.20.3", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "17"}, - {"mc": "1.20.2", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "17"}, - {"mc": "1.20.2", "type": "neoforge", "modloader": "neoforge", "regex": ".*neoforge.*", "java": "17"}, - {"mc": "1.20.2", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "17"}, - {"mc": "1.20.1", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "17"}, - {"mc": "1.20.1", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "17"}, - {"mc": "1.19.4", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "17"}, - {"mc": "1.19.4", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "17"}, - {"mc": "1.19.3", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "17"}, - {"mc": "1.19.3", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "17"}, - {"mc": "1.19.2", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "17"}, - {"mc": "1.19.2", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "17"}, - {"mc": "1.19.1", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "17"}, - {"mc": "1.19.1", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "17"}, - {"mc": "1.19", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "17"}, - {"mc": "1.19", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "17"}, - {"mc": "1.18.2", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "17"}, - {"mc": "1.18.2", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "17"}, - {"mc": "1.17.1", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "16"}, - {"mc": "1.17.1", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "16"}, - {"mc": "1.16.5", "type": "fabric", "modloader": "fabric", "regex": ".*fabric.*", "java": "8"}, - {"mc": "1.16.5", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "8"}, - {"mc": "1.12.2", "type": "lexforge", "modloader": "forge", "regex": ".*forge.*", "java": "8"}, - {"mc": "1.8.9", "type": "lexforge", "modloader": "forge", "regex": ".*orge.*", "java": "8"}, - {"mc": "1.7.10", "type": "lexforge", "modloader": "forge", "regex": ".*orge.*", "java": "8"} - ] + with open('ci-data.json') as f: + ci_data = json.load(f) + + build_data = ci_data['build_data'] + run_data = ci_data['run_data'] dirs_to_filter = [] mc_versions = [] diff --git a/.github/workflows/new-mc-version.yml b/.github/workflows/new-mc-version.yml index b4195a2..a2bb395 100644 --- a/.github/workflows/new-mc-version.yml +++ b/.github/workflows/new-mc-version.yml @@ -10,13 +10,10 @@ jobs: permissions: contents: write pull-requests: write - actions: write steps: - name: Checkout repository uses: actions/checkout@v4 - with: - token: ${{ secrets.MC_VERSION_WORKFLOW_TOKEN }} - name: Set up Python uses: actions/setup-python@v5 @@ -24,11 +21,10 @@ jobs: python-version: "3.11" - name: Install dependencies - run: | - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + run: pip install -r new-versions/requirements.txt - name: Run Python script - run: python check-for-new-mc-versions.py + run: python new-versions/check-for-new-mc-versions.py - name: Check for changes id: git-check @@ -51,7 +47,6 @@ jobs: #reviewers: okafke commit-message: "feat: ${{ env.LATEST_VERSION }}" delete-branch: true - token: ${{ secrets.MC_VERSION_WORKFLOW_TOKEN }} branch: version-${{ env.LATEST_VERSION }} title: "feat: ${{ env.LATEST_VERSION }}" body: "Automatic commit: build and run ${{ env.LATEST_VERSION }} in ${{ env.LATEST_VERSION_DIR }}" diff --git a/ci-data.json b/ci-data.json new file mode 100644 index 0000000..18da6ad --- /dev/null +++ b/ci-data.json @@ -0,0 +1,593 @@ +{ + "build_data": [ + { + "dir": "api", + "java": "8" + }, + { + "dir": "1_21_10", + "mc": "1.21.10", + "lex": "60.0.0", + "neo": "50-beta", + "java": "21" + }, + { + "dir": "1_21_6", + "mc": "1.21.8", + "lex": "58.0.0", + "neo": "51", + "java": "21" + }, + { + "dir": "1_21_6", + "mc": "1.21.7", + "lex": "57.0.0", + "neo": "25-beta", + "java": "21" + }, + { + "dir": "1_21_6", + "mc": "1.21.6", + "lex": "56.0.9", + "neo": "19-beta", + "java": "21" + }, + { + "dir": "1_21_5", + "mc": "1.21.5", + "lex": "55.0.3", + "neo": "24-beta", + "java": "21" + }, + { + "dir": "1_21", + "mc": "1.21.4", + "lex": "54.0.16", + "neo": "50-beta", + "java": "21" + }, + { + "dir": "1_21", + "mc": "1.21.3", + "lex": "53.0.7", + "neo": "11-beta", + "java": "21" + }, + { + "dir": "1_21", + "mc": "1.21.1", + "lex": "52.0.2", + "neo": "4", + "java": "21" + }, + { + "dir": "1_21", + "mc": "1.21", + "lex": "51.0.24", + "neo": "96-beta", + "java": "21" + }, + { + "dir": "1_20_6", + "mc": "1.20.6", + "lex": "50.1.10", + "neo": "119", + "java": "21" + }, + { + "dir": "1_20", + "mc": "1.20.4", + "lex": "49.0.38", + "neo": "219", + "java": "17" + }, + { + "dir": "1_20", + "mc": "1.20.3", + "lex": "49.0.2", + "neo": "8-beta", + "java": "17" + }, + { + "dir": "1_20", + "mc": "1.20.2", + "lex": "48.1.0", + "neo": "88", + "java": "17" + }, + { + "dir": "1_20_1", + "mc": "1.20.1", + "lex": "47.2.23", + "java": "17" + }, + { + "dir": "1_19", + "mc": "1.19.4", + "lex": "45.2.9", + "java": "17" + }, + { + "dir": "1_19", + "mc": "1.19.3", + "lex": "44.1.23", + "java": "17" + }, + { + "dir": "1_19", + "mc": "1.19.2", + "lex": "43.3.9", + "java": "17" + }, + { + "dir": "1_19", + "mc": "1.19.1", + "lex": "42.0.9", + "java": "17" + }, + { + "dir": "1_19", + "mc": "1.19", + "lex": "41.1.0", + "java": "17" + }, + { + "dir": "1_18", + "mc": "1.18.2", + "lex": "40.2.18", + "java": "17" + }, + { + "dir": "1_17", + "mc": "1.17.1", + "lex": "37.1.1", + "java": "16" + }, + { + "dir": "1_16", + "mc": "1.16.5", + "lex": "36.2.42", + "java": "8" + }, + { + "dir": "1_12", + "mc": "1.12.2", + "lex": "14.23.5.2860", + "java": "8" + }, + { + "dir": "1_8_9", + "mc": "1.8.9", + "lex": "11.15.1.2318-1.8.9", + "java": "8" + }, + { + "dir": "1_7_10", + "mc": "1.7.10", + "lex": "10.13.4.1614-1.7.10", + "java": "8" + } + ], + "run_data": [ + { + "mc": "1.21.10", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "21" + }, + { + "mc": "1.21.10", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "21" + }, + { + "mc": "1.21.10", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "21" + }, + { + "mc": "1.21.8", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "21" + }, + { + "mc": "1.21.8", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "21" + }, + { + "mc": "1.21.8", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "21" + }, + { + "mc": "1.21.7", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "21" + }, + { + "mc": "1.21.7", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "21" + }, + { + "mc": "1.21.7", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "21" + }, + { + "mc": "1.21.6", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "21" + }, + { + "mc": "1.21.6", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "21" + }, + { + "mc": "1.21.6", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "21" + }, + { + "mc": "1.21.5", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "21" + }, + { + "mc": "1.21.5", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "21" + }, + { + "mc": "1.21.5", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "21" + }, + { + "mc": "1.21.4", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "21" + }, + { + "mc": "1.21.4", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "21" + }, + { + "mc": "1.21.4", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "21" + }, + { + "mc": "1.21.3", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "21" + }, + { + "mc": "1.21.3", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "21" + }, + { + "mc": "1.21.3", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "21" + }, + { + "mc": "1.21.1", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "21" + }, + { + "mc": "1.21.1", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "21" + }, + { + "mc": "1.21.1", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "21" + }, + { + "mc": "1.21", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "21" + }, + { + "mc": "1.21", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "21" + }, + { + "mc": "1.21", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "21" + }, + { + "mc": "1.20.6", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "21" + }, + { + "mc": "1.20.6", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "21" + }, + { + "mc": "1.20.6", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "21" + }, + { + "mc": "1.20.4", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "17" + }, + { + "mc": "1.20.4", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "17" + }, + { + "mc": "1.20.4", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "17" + }, + { + "mc": "1.20.3", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "17" + }, + { + "mc": "1.20.3", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "17" + }, + { + "mc": "1.20.3", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "17" + }, + { + "mc": "1.20.2", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "17" + }, + { + "mc": "1.20.2", + "type": "neoforge", + "modloader": "neoforge", + "regex": ".*neoforge.*", + "java": "17" + }, + { + "mc": "1.20.2", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "17" + }, + { + "mc": "1.20.1", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "17" + }, + { + "mc": "1.20.1", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "17" + }, + { + "mc": "1.19.4", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "17" + }, + { + "mc": "1.19.4", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "17" + }, + { + "mc": "1.19.3", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "17" + }, + { + "mc": "1.19.3", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "17" + }, + { + "mc": "1.19.2", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "17" + }, + { + "mc": "1.19.2", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "17" + }, + { + "mc": "1.19.1", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "17" + }, + { + "mc": "1.19.1", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "17" + }, + { + "mc": "1.19", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "17" + }, + { + "mc": "1.19", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "17" + }, + { + "mc": "1.18.2", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "17" + }, + { + "mc": "1.18.2", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "17" + }, + { + "mc": "1.17.1", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "16" + }, + { + "mc": "1.17.1", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "16" + }, + { + "mc": "1.16.5", + "type": "fabric", + "modloader": "fabric", + "regex": ".*fabric.*", + "java": "8" + }, + { + "mc": "1.16.5", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "8" + }, + { + "mc": "1.12.2", + "type": "lexforge", + "modloader": "forge", + "regex": ".*forge.*", + "java": "8" + }, + { + "mc": "1.8.9", + "type": "lexforge", + "modloader": "forge", + "regex": ".*orge.*", + "java": "8" + }, + { + "mc": "1.7.10", + "type": "lexforge", + "modloader": "forge", + "regex": ".*orge.*", + "java": "8" + } + ] +} \ No newline at end of file diff --git a/check-for-new-mc-versions.py b/new-versions/check-for-new-mc-versions.py similarity index 74% rename from check-for-new-mc-versions.py rename to new-versions/check-for-new-mc-versions.py index a90c905..81d9178 100644 --- a/check-for-new-mc-versions.py +++ b/new-versions/check-for-new-mc-versions.py @@ -1,7 +1,9 @@ +import json import os import re import shutil from typing import Callable +from pathlib import Path import requests @@ -58,31 +60,41 @@ def modify_gradle_properties(content: str, latest: str, lex: str) -> str: return content -def modify_lifecycle(curr_dir: str, latest: str, lex: str): - lifecycle_yml = '.github/workflows/lifecycle.yml' - with open(lifecycle_yml, "r", encoding="utf-8") as f: - lines = f.readlines() +def update_ci_data(curr_dir: str, latest: str, lex: str): + with open('ci-data.json', "r") as f: + ci_data = json.load(f) - out = [] - for i, line in enumerate(lines): - out.append(line) - if line.strip() == "# new-mc-version build data": - out.append(f" {{\"dir\": \"{curr_dir}\", \"mc\": \"{latest}\", \"lex\": \"{lex}\", \"neo\": \"0-beta\", \"java\": \"21\"}},\n") - elif line.strip() == "# new-mc-version run data": - out.append(f" {{\"mc\": \"{latest}\", \"type\": \"lexforge\", \"modloader\": \"forge\", \"regex\": \".*forge.*\", \"java\": \"21\"}},\n") - out.append(f" {{\"mc\": \"{latest}\", \"type\": \"neoforge\", \"modloader\": \"neoforge\", \"regex\": \".*neoforge.*\", \"java\": \"21\"}},\n") - out.append(f" {{\"mc\": \"{latest}\", \"type\": \"fabric\", \"modloader\": \"fabric\", \"regex\": \".*fabric.*\", \"java\": \"21\"}},\n") - - with open(lifecycle_yml, "w", encoding="utf-8") as f: - f.writelines(out) + build_data = ci_data['build_data'] + run_data = ci_data['run_data'] + build_data.insert(1, { + "dir": curr_dir, + "mc": latest, + "lex": lex, + "neo": "0-beta", + "java": "21" + }) -def modify_script_file(content: str, curr_dir: str, major: int, minor: int, patch: int) -> str: - content = re.sub(r'current_major\s*=\s*\d+', f'current_major = {major}', content) - content = re.sub(r'current_minor\s*=\s*\d+', f'current_minor = {minor}', content) - content = re.sub(r'current_patch\s*=\s*\d+', f'current_patch = {patch}', content) - content = re.sub(r'curr_dir\s*=\s*[\'"][^\'"]*[\'"]', f'curr_dir = \'{curr_dir}\'', content) - return content + for ml_type, modloader in { "fabric": "fabric", "neoforge": "neoforge", "lexforge": "forge" }.items(): + run_data.insert(0, { + "mc": latest, + "type": ml_type, + "modloader": modloader, + "regex": f".*{modloader}.*", + "java": "21" + }) + + with open('ci-data.json', "w") as f: + f.write(json.dumps(ci_data, indent='\t')) + + +def update_current_version_json(file_path: Path, current_version: dict, curr_dir: str, major: int, minor: int, patch: int): + current_version['major'] = major + current_version['minor'] = minor + current_version['patch'] = patch + current_version['dir'] = curr_dir + with open(file_path, 'w') as f: + f.write(json.dumps(current_version, indent='\t')) def prepare_new_dir(curr_dir: str, latest: str, major: int, minor: int, patch: int, lex: str) -> str: @@ -129,12 +141,16 @@ def get_lexforge_version(mc_version: str) -> str: def check_latest_mc_version(): - url = 'https://piston-meta.mojang.com/mc/game/version_manifest_v2.json' - current_major = 1 - current_minor = 21 - current_patch = 10 - curr_dir = '1_21_10' + current_version_file_path = Path(__file__).parent / 'current-version.json' + with open(current_version_file_path) as f: + current_version = json.load(f) + + current_major = current_version['major'] + current_minor = current_version['minor'] + current_patch = current_version['patch'] + curr_dir = current_version['dir'] + url = 'https://piston-meta.mojang.com/mc/game/version_manifest_v2.json' response = requests.get(url) data = response.json() @@ -156,8 +172,8 @@ def check_latest_mc_version(): if env_file: if current_major != major or current_minor != minor: curr_dir = prepare_new_dir(curr_dir, latest_release, major, minor, patch, lex) - modify_file(__file__, lambda c: modify_script_file(c, curr_dir, major, minor, patch)) - modify_lifecycle(curr_dir, latest_release, lex) + update_current_version_json(current_version_file_path, current_version.copy(), curr_dir, major, minor, patch) + update_ci_data(curr_dir, latest_release, lex) modify_readme(current_major, current_minor, current_patch, major, minor, patch) with open(env_file, 'a') as f: f.write(f"LATEST_VERSION={latest_release}\n") diff --git a/new-versions/current-version.json b/new-versions/current-version.json new file mode 100644 index 0000000..8b5e0e5 --- /dev/null +++ b/new-versions/current-version.json @@ -0,0 +1,6 @@ +{ + "major": 1, + "minor": 21, + "patch": 10, + "dir": "1_21_10" +} \ No newline at end of file diff --git a/requirements.txt b/new-versions/requirements.txt similarity index 100% rename from requirements.txt rename to new-versions/requirements.txt