Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .github/release120.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"version": "2.4.11.120011",
"minecraft": "1.20.1",
"forge": "47.4.28",
"version": "2.4.12.120061",
"minecraft": "1.20.6",
"forge": "50.2.14",
"local_qualification_complete": true,
"qualification_integrity_status": "verified",
"manual_accepted": true,
"files": {
"CHANGELOG.txt": "30D5C91D14146FC202B02CAF3786D017EEF39E19F2785E1CC4C2553D1F9576CC",
"LootableBodies-2.4.11.120011-javadoc.jar": "E7B2342A3BC0C698E923E60693FCD6EEDD93077167663306908E327A47B69DA0",
"LootableBodies-2.4.11.120011-sources.jar": "E40712C149FD9485EB5FCBA959BA13ACC2B87DC535A6D2593A266CEBE9E26218",
"LootableBodies-2.4.11.120011.jar": "FD9D040217D1949C04C5A6C123BEF8C7671B3A2ABE1170083C6769772942DD9E",
"LootableBodies-2.4.11.120011.pom": "A9177C59AF6D7FE1B4B86C40D8053FD7A3C7A81B639F6759079B82D27CA5152C",
"SHA256SUMS": "BFF65899B03C55A5D70E08FAA6B981250C9D787B6FE13865A058D5A94AAFDEDE"
"CHANGELOG.txt": "B546DA0EA212454D886C4F05BCC949A366E9EEC041EAB3E8CB8B36D0CAF0C007",
"LootableBodies-2.4.12.120061-javadoc.jar": "127405C2747FE4074C3EFD12A1BD449DC149AD3E2C90A37D8A8C1730C4D917C0",
"LootableBodies-2.4.12.120061-sources.jar": "92A02E80D1DE9D23DD529AC410D2792FDFE5E0353964ECDBD2A0B6993A397300",
"LootableBodies-2.4.12.120061.jar": "08C1D045970AEFDC08F5F114D308380256073B66BCCC36DE3532C0204BCEB0E0",
"LootableBodies-2.4.12.120061.pom": "E79A8BF254ACACD2EA86B0707A014FFB0A34F4617126D29947129C5C8E0B908A",
"SHA256SUMS": "F0FAA5AC25C97C6760781DE526298B87EF03E8D1FED5489CCAAF1F5445D8C737"
}
}
26 changes: 19 additions & 7 deletions .github/scripts/test_release_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,14 @@ def validate(self, minecraft, names=None, mutation=None, release_exists=False, w
'1.17.1': ('117011', 'master-1.17.1', '37.1.1'),
'1.18.2': ('118021', 'master-1.18.2', '40.3.12'),
'1.19.4': ('119041', 'master-1.19.4', '45.4.5'),
'1.20.1': ('120011', 'master-1.20.1', '47.4.28')}[minecraft]
'1.20.1': ('120011', 'master-1.20.1', '47.4.28'),
'1.20.6': ('120061', 'master-1.20.6', '50.2.14')}[minecraft]
version = '2.4.2.' + suffix
files={name:'C'*64 for name in ['main.jar','sources.jar','javadoc.jar','release.pom','CHANGELOG.txt','SHA256SUMS']}
receipt={'schema':1,'source':SHA,'version':version,'files':files,'evidence_sha256':'F'*64,'qualified_locally':True,'manual_accepted':True}
if local_receipt is not None:receipt=local_receipt
values = dict(minecraft_version=minecraft, forge_version=forge, loader_name='forge', loader_code='1',
java_version='17' if minecraft in ('1.18.2','1.19.4','1.20.1') else '16' if minecraft=='1.17.1' else '8', java_toolchain_version='17.0.20.1+1' if minecraft in ('1.18.2','1.19.4','1.20.1') else '16.0.2+7' if minecraft=='1.17.1' else '8.0.502+7', gradle_java_version='17', mod_id='lootablebodies',
java_version='21' if minecraft=='1.20.6' else '17' if minecraft in ('1.18.2','1.19.4','1.20.1') else '16' if minecraft=='1.17.1' else '8', java_toolchain_version='21.0.7+6' if minecraft=='1.20.6' else '17.0.20.1+1' if minecraft in ('1.18.2','1.19.4','1.20.1') else '16.0.2+7' if minecraft=='1.17.1' else '8.0.502+7', gradle_java_version='21' if minecraft=='1.20.6' else '17', mod_id='lootablebodies',
mod_artifact='LootableBodies', mod_group='zone.moddev.mc.lootablebodies', mod_license='LGPL-2.1-only',
curseforge_project_id='240968', mod_version=version)
if mutation:
Expand All @@ -87,13 +88,13 @@ def validate(self, minecraft, names=None, mutation=None, release_exists=False, w
'1.14.4': MATRIX114 + ['Validate release workflow'],
'1.15.2': MATRIX115, '1.16.5': MATRIX116}.get(minecraft, []) if names is None else names
if minecraft=='1.17.1' and names is None:checks=CORE117+MATRIX117
if minecraft in ('1.18.2','1.19.4','1.20.1') and names is None:checks=CORE118
if minecraft in ('1.18.2','1.19.4','1.20.1','1.20.6') and names is None:checks=CORE118

def command(args, **options):
if args[0] == 'git':
return SHA + '\n'
if any('/actions/workflows/native'+code+'.yml/' in args[-1] for code in ['117','118','119','120']):
code={'1.17.1':'117','1.18.2':'118','1.19.4':'119','1.20.1':'120'}[minecraft]
code={'1.17.1':'117','1.18.2':'118','1.19.4':'119','1.20.1':'120','1.20.6':'120'}[minecraft]
row=dict(id=int(code),head_sha=SHA,head_branch=branch,event='push',path='.github/workflows/native'+code+'.yml',conclusion='success')
if qualification:row.update(qualification)
return json.dumps({'workflow_runs':[row]})
Expand All @@ -117,10 +118,21 @@ def existing(args, **options):
patch('subprocess.check_output', side_effect=command), patch('subprocess.run', side_effect=existing):
exec(compile(code, 'release-preflight', 'exec'), {})

def test_future_1206_candidate_cannot_dispatch_publication(self):
def test_1206_requires_exact_archives_and_java_21(self):
code, values = self.select('2.4.12.120061')
self.assertNotEqual(0, code)
self.assertEqual({}, values)
self.assertEqual(0, code)
self.assertEqual({'minecraft_version': '1.20.6', 'source_branch': 'master-1.20.6'}, values)
self.validate('1.20.6')
for options in ({'mutation': {'java_version': '17'}}, {'audit_success': False},
{'qualification': {'head_branch': 'master-1.20.1'}},
{'local_receipt': {'manual_accepted': False}}):
with self.subTest(options=options), self.assertRaises(SystemExit):
self.validate('1.20.6', **options)
self.assertIn("minecraft_version == '1.20.6' && 'Java 21'", WORKFLOW.read_text())
self.assertEqual(2, WORKFLOW.read_text().count("minecraft_version == '1.20.6' && '21.0.7+6.0.LTS'"))

def test_future_1211_candidate_cannot_dispatch_publication(self):
self.assertNotEqual(0, self.select('2.4.13.121011')[0])

def test_routes_all_supported_versions(self):
for suffix, minecraft, branch in [('110021', '1.10.2', '1.10.2'), ('111021', '1.11.2', '1.11.2-dev'), ('112021', '1.12.2', 'master-1.12'), ('113021', '1.13.2', 'master-1.13.2'), ('114041', '1.14.4', 'master-1.14.4')]:
Expand Down
9 changes: 5 additions & 4 deletions .github/workflows/artifact-audit-1.20.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
name: Audit LootableBodies 1.20 artifacts
run-name: Audit 1.20.1 artifacts from ${{ github.event.workflow_run.head_sha }}
run-name: Audit ${{ github.event.workflow_run.head_branch == 'master-1.20.6' && '1.20.6' || '1.20.1' }} artifacts from ${{ github.event.workflow_run.head_sha }}
on:
workflow_run:
workflows: [LootableBodies 1.20 CI]
workflows: [LootableBodies 1.20 CI, LootableBodies 1.20.6 CI]
types: [completed]
permissions:
contents: read
Expand All @@ -12,7 +12,8 @@ jobs:
if: >-
github.repository == 'MinecraftModDevelopmentMods/LootableBodies' &&
github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'push' &&
github.event.workflow_run.head_branch == 'master-1.20.1'
((github.event.workflow_run.head_branch == 'master-1.20.1' && github.event.workflow_run.name == 'LootableBodies 1.20 CI') ||
(github.event.workflow_run.head_branch == 'master-1.20.6' && github.event.workflow_run.name == 'LootableBodies 1.20.6 CI'))
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
Expand All @@ -21,7 +22,7 @@ jobs:
ref: ${{ github.event.workflow_run.head_sha }}
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
name: LootableBodies-1.20.1-${{ github.event.workflow_run.head_sha }}
name: LootableBodies-${{ github.event.workflow_run.head_branch == 'master-1.20.6' && '1.20.6' || '1.20.1' }}-${{ github.event.workflow_run.head_sha }}
run-id: ${{ github.event.workflow_run.id }}
github-token: ${{ github.token }}
path: audited
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ name: CodeQL
on:
push:
branches:
- master-1.20.1
- master-1.20.6
- 'feature/**'
pull_request:
branches:
- master-1.20.1
- master-1.20.6
schedule:
- cron: '43 7 * * 4'

Expand Down Expand Up @@ -37,15 +37,15 @@ jobs:
distribution: temurin
java-version: '25.0.3+9.0.LTS'

- name: Install pinned Java 17 Gradle and compilation runtime
- name: Install pinned Java 21 Gradle and compilation runtime
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
with:
distribution: temurin
java-version: '17.0.20+101'
java-version: '21.0.7+6.0.LTS'

- name: Pin production JDK
run: |
echo "LOOTABLEBODIES_JAVA17_HOME=$JAVA_HOME_17_X64" >> "$GITHUB_ENV"
echo "LOOTABLEBODIES_JAVA21_HOME=$JAVA_HOME_21_X64" >> "$GITHUB_ENV"
echo "LOOTABLEBODIES_MAVENIZER_JAVA_HOME=$JAVA_HOME_25_X64" >> "$GITHUB_ENV"

- name: Set up Gradle
Expand Down
Loading
Loading