Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
388 commits
Select commit Hold shift + click to select a range
085095b
Updated readme
ReCore-sys Jul 13, 2026
34dcc8b
Merge pull request #106 from temper-mc/feature/v26.2
ReCore-sys Jul 13, 2026
8168b6b
registry based time stuff
ReCore-sys Jul 13, 2026
22d4e6c
quick comment
ReCore-sys Jul 13, 2026
9702184
Merge pull request #107 from temper-mc/fix/26.2-time-fixes
ReCore-sys Jul 13, 2026
69c9891
Implemented heightmaps (poorly)
ReCore-sys Jul 14, 2026
40cd251
Slight fixes
ReCore-sys Jul 14, 2026
d85e591
Some unit tests
ReCore-sys Jul 14, 2026
1dd92c9
fmt
ReCore-sys Jul 14, 2026
cd8c215
Merge pull request #108 from temper-mc/feature/heightmaps
ReCore-sys Jul 14, 2026
90780e2
Randomised spawns
ReCore-sys Jul 14, 2026
8de78f0
fmt
ReCore-sys Jul 14, 2026
7e7c5b1
Merge pull request #109 from temper-mc/feature/random-spawns
ReCore-sys Jul 14, 2026
ba55266
Performance increases
ReCore-sys Jul 19, 2026
a32cd97
Proper grass block placement
ReCore-sys Jul 19, 2026
ed9a8c5
Flowers
ReCore-sys Jul 19, 2026
35ba798
Batched benchmarks
ReCore-sys Jul 19, 2026
8a28e2f
fmt
ReCore-sys Jul 20, 2026
4d98c6b
Merge pull request #110 from temper-mc/feature/better-worldgen
ReCore-sys Jul 20, 2026
e4763cc
Ripping out old system
ReCore-sys Jul 23, 2026
2dc9a22
Data structures implemented. I think
ReCore-sys Jul 23, 2026
63c970c
god i hope this stuff works
ReCore-sys Jul 23, 2026
399be20
Actual generation logic. I think.
ReCore-sys Jul 23, 2026
d4f6735
Actually got it working. now for 4 million bugfixes
ReCore-sys Jul 23, 2026
2d0b736
Bug fixes + multi-chunk trees
ReCore-sys Jul 23, 2026
b1d352a
flowers and grass
ReCore-sys Jul 23, 2026
eef334f
Seed and generator in config
ReCore-sys Jul 23, 2026
200d91a
lakes
ReCore-sys Jul 23, 2026
76deda2
skyblock lol
ReCore-sys Jul 23, 2026
4529ace
Use correct syntax for cargo:error
MSKatKing Jul 23, 2026
f2adc5a
Merge pull request #111 from MSKatKing/fix/assets-build
ReCore-sys Jul 23, 2026
0465237
noise for normal gen
ReCore-sys Jul 25, 2026
54d199a
spline
ReCore-sys Jul 25, 2026
0552020
kinda works
ReCore-sys Jul 25, 2026
2aee027
Some performance increases
ReCore-sys Jul 25, 2026
953b81d
simd got hands
ReCore-sys Jul 25, 2026
8466292
Port old terrain back to new system
ReCore-sys Aug 1, 2026
d20b434
Tweaked more terrain stuff
ReCore-sys Aug 1, 2026
a09932c
Trees and a a deadlock fix
ReCore-sys Aug 1, 2026
c95268e
actual deadlocking fix
ReCore-sys Aug 1, 2026
a2612b1
Use data from the section instead of empty vec![]
Contrabass26 Aug 6, 2026
8bea502
Merge pull request #112 from Contrabass26/fix/direct-section-packet
ReCore-sys Aug 7, 2026
260c51a
Some cleanup
ReCore-sys Aug 7, 2026
a46aab7
Added the workflow stuff
ReCore-sys Aug 7, 2026
3c9ed10
Merge pull request #113 from temper-mc/feature/ci-run-reporting
ReCore-sys Aug 7, 2026
7650986
docs
ReCore-sys Aug 7, 2026
8e66dbd
fmt
ReCore-sys Aug 7, 2026
c11fa1c
fix test
ReCore-sys Aug 7, 2026
a4bcffe
bump deps
ReCore-sys Aug 7, 2026
0148c0f
update default world type
ReCore-sys Aug 7, 2026
d144fe2
fixed unneeded clone
ReCore-sys Aug 22, 2026
275833e
Fix for save system hanging
ReCore-sys Aug 22, 2026
2ffcdf0
moved skyblock to seed
ReCore-sys Aug 22, 2026
e30ad01
Merge branch 'feature/world-gen-optimisations' into feature/staged-wo…
ReCore-sys Aug 22, 2026
4669ec4
fmt
ReCore-sys Aug 22, 2026
6e55239
Update README.md
colonthreeing Aug 23, 2026
59bbfa1
add crossbeam-channel dependency and enhance chunk handling logic
Pookachu Aug 27, 2026
4f336cd
Use threadpool for non-ecs-blocking disk i/o
Pookachu Aug 27, 2026
dba6d58
check cache before ensuring chunk to optimize I/O operations
Pookachu Aug 27, 2026
711032a
fix race condition involving dependants
Pookachu Aug 27, 2026
012e360
refactor chunk handling: convert PreparedChunk to enum and enhance ch…
Pookachu Aug 27, 2026
f86022f
Merge branch 'feature/staged-world-gen' into fix/chunk-gen-stalls
Pookachu Aug 27, 2026
62585ae
Merge pull request #115 from colonthreeing/patch-1
ReCore-sys Aug 27, 2026
e613df5
implement retry logic for chunk preparation failures with a maximum r…
Pookachu Aug 27, 2026
a238ce7
Merge branch 'fix/chunk-gen-stalls' of https://github.com/Pookachu/te…
Pookachu Aug 27, 2026
c61b186
fix(world): keep generated chunks persistent
Pookachu Aug 28, 2026
8c1badc
fix(gen): restore skyblock selection by name
Pookachu Aug 28, 2026
ce37d2b
test: match new chunk write and shutdown behaviour
Pookachu Aug 28, 2026
21217ef
perf(world): move chunk and world writes off the schedule thread
Pookachu Aug 28, 2026
12caca8
feat(threadpool): add core_count field to ThreadPool for new core_cou…
Pookachu Aug 28, 2026
d503ea7
fix(chunk): improve chunk dispatch handling and backpressure management
Pookachu Aug 28, 2026
a8fade2
perf(storage): remove global mutex around LMDB environment
Pookachu Aug 28, 2026
bc7e012
test(storage): cover concurrency and reopen paths for the LMDB adapter
Pookachu Aug 29, 2026
bca98fb
if this breaks ill just post pooka's home address on reddit
ReCore-sys Aug 29, 2026
4e3a32d
refactor(chunks): address review feedback
Pookachu Sep 1, 2026
8741976
fix(chunks): address review feedback
Pookachu Sep 2, 2026
4ac8c15
refactor(chunks): use ChunkPos throughout ChunkReceiver
Pookachu Sep 2, 2026
1c83435
Merge pull request #116 from Pookachu/fix/chunk-gen-stalls
ReCore-sys Sep 3, 2026
048c203
Merge pull request #117 from Pookachu/fix/chunk-dispatch-backpressure
ReCore-sys Sep 3, 2026
6fbf235
Merge branch 'dev' into feature/staged-world-gen
ReCore-sys Sep 3, 2026
f1101ed
fix for merge issues
ReCore-sys Sep 3, 2026
5e4d12b
fmt
ReCore-sys Sep 3, 2026
251bff4
Merge pull request #114 from temper-mc/feature/staged-world-gen
ReCore-sys Sep 4, 2026
7abf665
feat(registry): add block entity type lookups
Pookachu Sep 4, 2026
685c617
feedback(registry): rename ProtocolIdRegistry to ItemRegistry and Blo…
Pookachu Sep 4, 2026
5f8631e
feat(world): add block entity storage to chunks
Pookachu Sep 4, 2026
90e2379
feat(data): expose block entity types from extracted block data
Pookachu Sep 4, 2026
511c68a
chore(cargo): update workspace resolver to version 3
on9au Sep 4, 2026
9d08f62
Moved everything to seperate game id
ReCore-sys Sep 5, 2026
e3d1460
Cleaned up a bunch of logging
ReCore-sys Sep 5, 2026
2d08493
fmt + test fixes
ReCore-sys Sep 5, 2026
f48f799
Added damage message
ReCore-sys Sep 5, 2026
c19166b
Added packet stuff
ReCore-sys Sep 5, 2026
961ae48
Outgoing hurt logic event
ReCore-sys Sep 5, 2026
9a8af25
damage command
ReCore-sys Sep 5, 2026
0b0e29e
Added death (not respawning tho)
ReCore-sys Sep 5, 2026
714a48d
respawning added
ReCore-sys Sep 5, 2026
5f01388
Basic death message stub
ReCore-sys Sep 5, 2026
6770696
fmt
ReCore-sys Sep 5, 2026
043a6e2
fix for test taking too long on ci
ReCore-sys Sep 5, 2026
b280845
Add macro to generate path to assets directory
MSKatKing Sep 6, 2026
fe5030a
Add noise crate to hold noise map implementations
MSKatKing Sep 6, 2026
2fdf148
Build noise parameters from assets directory
MSKatKing Sep 6, 2026
c34ef6e
Add some math extensions for f32 and f64 as well as the accompanying …
MSKatKing Sep 6, 2026
fa8b5d2
Add RandomSource and PositionalRandom
MSKatKing Sep 6, 2026
3e8ce41
Implement various noise maps
MSKatKing Sep 6, 2026
a487c7e
Add crate for density functions
MSKatKing Sep 6, 2026
b4b5890
Implement some density functions
MSKatKing Sep 6, 2026
5328c6c
Implement simple compiler
MSKatKing Sep 6, 2026
bb91158
Implement terrain generator that uses density functions
MSKatKing Sep 6, 2026
904ec4f
Improve density calculation performance
MSKatKing Sep 6, 2026
66472bf
Fix some bugs
MSKatKing Sep 6, 2026
ca4b28d
Correctly implement splines
MSKatKing Sep 6, 2026
3be3d93
Fix noise map seeds
MSKatKing Sep 6, 2026
be03df1
Use SIMD instructions to calculate lerp values
MSKatKing Sep 6, 2026
0a7df0e
Fix unneeded clone
ReCore-sys Sep 7, 2026
44fddd2
Merge pull request #126 from temper-mc/fix/seperated-game-ids
ReCore-sys Sep 7, 2026
0a1009b
Merge branch 'dev' into feature/damage
ReCore-sys Sep 7, 2026
f25396b
feat(world): send block entities in the chunk packet
Pookachu Sep 7, 2026
8046a70
Improve performance for noise maps
MSKatKing Sep 8, 2026
52c46b9
Fix blended noise
MSKatKing Sep 8, 2026
96002d2
Formatting + clippy
MSKatKing Sep 8, 2026
da8ccbd
Merge remote-tracking branch 'origin/dev' into feature/vanilla-terrain
MSKatKing Sep 8, 2026
18b3faf
Use FMA instructions for simd lerps
MSKatKing Sep 8, 2026
cf36a2e
Flatten density functions to array to prevent pointer chasing
MSKatKing Sep 8, 2026
c1c99f2
Fix performance for density functions
MSKatKing Sep 10, 2026
e239fab
Formatting and parity improvements
MSKatKing Sep 10, 2026
d56863d
Add warning for vanilla generator
MSKatKing Sep 10, 2026
6225e93
Fix remaining parity issues
MSKatKing Sep 11, 2026
b524f30
Formatting and clippy
MSKatKing Sep 11, 2026
ca4d87c
feat(signs): place signs with rotation and block entity data
Pookachu Sep 11, 2026
4ceb354
feat(signs): edit sign text and broadcast updates
Pookachu Sep 11, 2026
5230871
feat(blocks): place wall and hanging sign variants
Pookachu Sep 12, 2026
1214110
feat(signs): reopen the editor when a sign is right-clicked
Pookachu Sep 12, 2026
81b0fc6
Swap back to f32 for damage/health
ReCore-sys Sep 12, 2026
47306c8
fix(blocks): don't panic when using a non-block item on a block
Pookachu Sep 12, 2026
9671697
Merge pull request #127 from temper-mc/feature/damage
ReCore-sys Sep 12, 2026
cb00d16
Merge branch 'dev' into chore/cargo-resolver-v3
ReCore-sys Sep 12, 2026
171d3f3
Merge branch 'dev' into feat/sign-block-entities
Pookachu Sep 12, 2026
478e793
fmt
Pookachu Sep 12, 2026
89246c0
fmt 2
Pookachu Sep 12, 2026
412dc67
clippy
Pookachu Sep 12, 2026
648cf09
fmt 3
Pookachu Sep 12, 2026
737a824
Merge pull request #125 from on9au/chore/cargo-resolver-v3
ReCore-sys Sep 12, 2026
aa4ae38
Sync sub-crate version with workspace
ReCore-sys Sep 12, 2026
d000f8e
Merge pull request #131 from temper-mc/fix/synced-crate-versions
ReCore-sys Sep 12, 2026
dc6045a
Added NbtBlob
ReCore-sys Sep 12, 2026
154daa1
Added the massive struct
ReCore-sys Sep 12, 2026
de99e1c
potion stuff and id set
ReCore-sys Sep 12, 2026
a732ac6
id or inline
ReCore-sys Sep 12, 2026
14c7081
sound effect
ReCore-sys Sep 12, 2026
9b09599
The last few types
ReCore-sys Sep 12, 2026
2275664
shuffle around
ReCore-sys Sep 12, 2026
78f4b6d
Use correct hashing algorithm for vanilla generator
MSKatKing Sep 12, 2026
676dd0a
net encode. it sucked.
ReCore-sys Sep 13, 2026
27ba322
net decode (kinda)
ReCore-sys Sep 13, 2026
a5ad589
added benches and tests
ReCore-sys Sep 13, 2026
6ed328c
Fix for missing root compound on net decode
ReCore-sys Sep 13, 2026
209b6b5
fix for reading to end of stream
ReCore-sys Sep 13, 2026
043f14c
Optimisations
ReCore-sys Sep 13, 2026
8aa221c
fmt
ReCore-sys Sep 13, 2026
b16a34d
Review (comments 1, 2, and 5)
Pookachu Sep 13, 2026
fcb4800
fmt 4
Pookachu Sep 13, 2026
9f982ff
Remove WyHash for calculating seeds from strings
MSKatKing Sep 13, 2026
2361685
refactor(signs): read sign data through an accessor
Pookachu Sep 13, 2026
390803f
Ensure tests pass
MSKatKing Sep 13, 2026
6602396
Create enum for density function operations
MSKatKing Sep 13, 2026
ba5b475
Merge pull request #132 from temper-mc/fix/nbt-decoding
ReCore-sys Sep 13, 2026
c23c023
Create runtime struct to process functions
MSKatKing Sep 13, 2026
2e1c1d5
Implement the runtime for various density functions
MSKatKing Sep 14, 2026
f3694ce
Compile into opcode vec
MSKatKing Sep 14, 2026
1328b4f
Formatting + clippy
MSKatKing Sep 14, 2026
0fa51c9
Undo rustrover refactor comment changes lmao
MSKatKing Sep 14, 2026
2c8dc6d
Cleanup unused SIMD code
MSKatKing Sep 14, 2026
078bbbd
Merge branch 'dev' into feat/sign-block-entities
Pookachu Sep 14, 2026
cb11ad8
Cleanup some code
MSKatKing Sep 17, 2026
7143406
refactor(signs): send block entity NBT as NbtBlob
Pookachu Sep 17, 2026
0923162
refactor(signs): move sign accessors into the sign module
Pookachu Sep 17, 2026
8ca69b5
fix(signs): notify the client when sign text is rejected
Pookachu Sep 18, 2026
fa787e8
fix(build height)
Pookachu Sep 18, 2026
a9998bc
Merge pull request #130 from Pookachu/feat/sign-block-entities
ReCore-sys Sep 18, 2026
dd9196f
feat(packaging): automatically upload builds to ghcr.io
colonthreeing Sep 18, 2026
7045fd4
Merge branch 'dev' into feature/item-components
ReCore-sys Sep 18, 2026
ed09ae2
Added net decode for text components
ReCore-sys Sep 18, 2026
bb3cdaf
broken wip
ReCore-sys Sep 18, 2026
be4bbbe
Swapped to serde for entity storage
ReCore-sys Sep 18, 2026
421894a
some build script stuff
ReCore-sys Sep 18, 2026
f90690d
4 fucktillion bug fixes
ReCore-sys Sep 18, 2026
b8ec648
added back typehash
ReCore-sys Sep 18, 2026
fbd8e89
fmt
ReCore-sys Sep 18, 2026
7400693
Include nightly CI
colonthreeing Sep 19, 2026
d8c4680
fix(packaging): Don't make nightly releases on github, just on the hub
colonthreeing Sep 19, 2026
4224143
meander(packaging): no more instability
colonthreeing Sep 19, 2026
e063cea
Merge pull request #134 from colonthreeing/docker-cicd
ReCore-sys Sep 19, 2026
67776bd
fix(packaging): lobotomize colonthreeing
colonthreeing Sep 19, 2026
34c5bbf
fix(packaging): ...yeah
colonthreeing Sep 19, 2026
2943802
Merge pull request #136 from colonthreeing/docker-cicd
ReCore-sys Sep 19, 2026
051e05a
i can fix her
colonthreeing Sep 19, 2026
77413e2
Merge pull request #137 from colonthreeing/docker-cicd
ReCore-sys Sep 19, 2026
b69abfc
mayhaps
ReCore-sys Sep 19, 2026
9894267
Merge pull request #138 from temper-mc/fix/ghcr-fix-4
ReCore-sys Sep 19, 2026
f834eaa
please. im begging
ReCore-sys Sep 19, 2026
edae82a
Merge pull request #139 from temper-mc/fix/ghcr-fix-5
ReCore-sys Sep 19, 2026
bcf467d
Small fix
ReCore-sys Sep 19, 2026
c71c62d
Merge pull request #140 from temper-mc/fix/dockerfile-using-tui
ReCore-sys Sep 19, 2026
cdff5c4
fix for not running setup ahead of time
ReCore-sys Sep 19, 2026
e61fe71
Merge pull request #141 from temper-mc/fix/docker-setup
ReCore-sys Sep 19, 2026
0fba84b
Merge pull request #128 from MSKatKing/feature/vanilla-terrain
ReCore-sys Sep 19, 2026
87d9b14
fix(players): send tab-list info before entity spawns
Pookachu Sep 19, 2026
185046d
fmt 1
Pookachu Sep 19, 2026
6b6680d
fix(entities): correct the pose metadata serializer id
Pookachu Sep 19, 2026
27ea771
Merge branch 'dev' into feature/item-components
ReCore-sys Sep 20, 2026
1d5bf8f
made it a little cleaner
ReCore-sys Sep 20, 2026
e6922ed
fmt
ReCore-sys Sep 20, 2026
c4dc2b5
Merge pull request #142 from Pookachu/fix/player-visibility-race
ReCore-sys Sep 21, 2026
a2a379f
Merge pull request #135 from temper-mc/feature/item-components
ReCore-sys Sep 21, 2026
d27dfc4
Added macro
ReCore-sys Sep 20, 2026
4a6afd7
Moved manual matches over
ReCore-sys Sep 20, 2026
e49c36c
Merge pull request #143 from temper-mc/feature/inverse-discriminant
ReCore-sys Sep 21, 2026
8d4f696
added unit tests
ReCore-sys Sep 21, 2026
4627c23
Swapped to simdnbt
ReCore-sys Sep 21, 2026
5698a7a
removed some ownership stuff
ReCore-sys Sep 21, 2026
1315586
Performance fixes
ReCore-sys Sep 21, 2026
6179b0f
I'm so smart i promise
ReCore-sys Sep 21, 2026
3effa9a
fmt
ReCore-sys Sep 21, 2026
9492ae1
Merge pull request #145 from temper-mc/fix/damage-target
ReCore-sys Sep 21, 2026
b22b38b
Swap to stable fork
ReCore-sys Sep 23, 2026
4b94c61
Use borrowed version for way faster parsing
ReCore-sys Sep 23, 2026
c79eef5
fmt
ReCore-sys Sep 23, 2026
968a37e
Merge pull request #146 from temper-mc/fix/simdnbt-conversion
ReCore-sys Sep 26, 2026
9f1d6a4
Make UUIDs based off of name in offline mode
ReCore-sys Sep 26, 2026
1a73621
Fix missing disconnects
ReCore-sys Sep 26, 2026
bed74b1
fmt
ReCore-sys Sep 26, 2026
f86b988
Merge pull request #147 from temper-mc/fix/player-visibility
ReCore-sys Sep 26, 2026
1471062
Consolidated hitboxes
ReCore-sys Sep 26, 2026
96582f1
Buncha maths
ReCore-sys Sep 26, 2026
4d3f838
fixed the component binfire
ReCore-sys Sep 26, 2026
a9cc783
Unified collision handling
ReCore-sys Sep 27, 2026
6525b1a
bug fixes
ReCore-sys Sep 27, 2026
2e0d087
moving to non-colliding position
ReCore-sys Sep 27, 2026
0e46177
MTV implemented
ReCore-sys Sep 27, 2026
f053958
More fixes
ReCore-sys Oct 1, 2026
250ed07
Changed some grounding stuff to fix duplicated collision detects
ReCore-sys Oct 1, 2026
b5de5a3
Added snapshotting to improve consistency
ReCore-sys Oct 1, 2026
27c1cc8
fmt
ReCore-sys Oct 1, 2026
257582d
removed debug message
ReCore-sys Oct 1, 2026
7df82f8
Merge pull request #148 from temper-mc/fix/collisions
ReCore-sys Oct 1, 2026
01c19ad
Changed ping address to 127.0.0.1 instead of localhost
ReCore-sys Oct 1, 2026
14e1de5
Merge pull request #149 from temper-mc/fix/docker-healthcheck
ReCore-sys Oct 1, 2026
4bf8066
Final tweaks before release
ReCore-sys Oct 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
experimental = ["benchmarks"]

[profile.ci.junit]
path = "junit.xml"


103 changes: 103 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: Nightly

on:
pull_request:
branches: ["dev"]
types: [closed]

permissions:
contents: read

env:
CARGO_TERM_COLOR: always
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

defaults:
run:
shell: bash

jobs:
check_merge:
name: Check If Merged
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
version: ${{ steps.version.outputs.version }}
tag: ${{ steps.version.outputs.tag }}
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.merge_commit_sha }}
fetch-depth: 0

- name: Install Rust stable
uses: dtolnay/rust-toolchain@stable

- name: Generate lockfile
run: cargo generate-lockfile

- name: Check release version
id: version
run: |
version="dev"
echo "version=${version}" >> "$GITHUB_OUTPUT"
echo "tag=v${version}" >> "$GITHUB_OUTPUT"

build-and-publish:
name: Build and Publish Image
needs: check_merge
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
attestations: write
id-token: write

steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
ref: ${{ github.event.pull_request.merge_commit_sha }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4

- name: Log in to the Container registry
uses: docker/login-action@v4
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v6
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
latest=false
tags: |
type=raw,value=nightly
type=raw,value=nightly-{{date 'YYYYMMDD' tz='UTC'}}
type=sha,prefix=sha-
type=raw,value=${{ needs.check_merge.outputs.tag }}

- name: Build and push Docker image
id: push
uses: docker/build-push-action@v7
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

- name: Generate artifact attestation
uses: actions/attest@v4
with:
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
subject-digest: ${{ steps.push.outputs.digest }}
push-to-registry: true
61 changes: 61 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ permissions:

env:
CARGO_TERM_COLOR: always
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

defaults:
run:
Expand Down Expand Up @@ -78,6 +80,12 @@ jobs:
with:
targets: ${{ matrix.target }}

- name: Install JDK
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '25'

- uses: Swatinem/rust-cache@v2

- name: Build
Expand Down Expand Up @@ -131,3 +139,56 @@ jobs:
--target "${release_target}" \
--title "${RELEASE_TITLE}" \
--notes-file release-notes.md

build-and-publish:
name: Build and Publish Image
needs: [ check_release, build ]
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
attestations: write
id-token: write

steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.merge_commit_sha }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4

- name: Log in to the Container registry
uses: docker/login-action@v4
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v6
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=raw,value=${{ needs.check_release.outputs.tag }},priority=900
type=raw,value=${{ needs.check_release.outputs.version }},priority=800
type=raw,value=latest,priority=700
type=sha,prefix=sha-

- name: Build and push Docker image
id: push
uses: docker/build-push-action@v7
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

- name: Generate artifact attestation
uses: actions/attest@v4
with:
subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
subject-digest: ${{ steps.push.outputs.digest }}
push-to-registry: true
39 changes: 38 additions & 1 deletion .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ jobs:
with:
components: rustfmt, clippy

- name: Install JDK
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '25'

- uses: Swatinem/rust-cache@v2

- name: Run cargo fmt
Expand Down Expand Up @@ -71,6 +77,12 @@ jobs:
with:
targets: ${{ matrix.target }}

- name: Install JDK
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'

- uses: Swatinem/rust-cache@v2

- name: Build
Expand All @@ -86,6 +98,7 @@ jobs:
name: Run Tests
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: macos-14
Expand All @@ -105,6 +118,12 @@ jobs:
with:
targets: ${{ matrix.target }}

- name: Install JDK
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '25'

- uses: Swatinem/rust-cache@v2

- name: Install cargo-nextest
Expand All @@ -113,4 +132,22 @@ jobs:
tool: cargo-nextest

- name: Run Tests
run: cargo nextest run --target ${{ matrix.target }} --all-targets --all-features -E "not kind(bench)"
run: cargo nextest run --profile ci --target ${{ matrix.target }} --all-targets --all-features -E "not kind(bench)"

- name: Upload test results
if: ${{ !cancelled() }}
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.target }}
path: target/nextest/ci/junit.xml

event_file:
name: Event File
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Upload event file
uses: actions/upload-artifact@v4
with:
name: event-file
path: ${{ github.event_path }}
48 changes: 48 additions & 0 deletions .github/workflows/test-results.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Test Results

on:
workflow_run:
workflows: [ "Rust CI" ]
types: [ completed ]

permissions: {}

jobs:
test-results:
name: Test Results
if: ${{ github.event.workflow_run.event == 'pull_request' && (github.event.workflow_run.conclusion == 'success' || github.event.workflow_run.conclusion == 'failure') }}
runs-on: ubuntu-latest
permissions:
actions: read
checks: write
contents: read
issues: read
pull-requests: write
steps:
- name: Download test results
uses: actions/download-artifact@v4
with:
github-token: ${{ github.token }}
repository: ${{ github.repository }}
run-id: ${{ github.event.workflow_run.id }}
pattern: test-results-*
path: artifacts/test-results

- name: Download event file
uses: actions/download-artifact@v4
with:
github-token: ${{ github.token }}
repository: ${{ github.repository }}
run-id: ${{ github.event.workflow_run.id }}
name: event-file
path: artifacts/event-file

- name: Publish test results
uses: EnricoMi/publish-unit-test-result-action@v2
with:
commit: ${{ github.event.workflow_run.head_sha }}
event_file: artifacts/event-file/event.json
event_name: ${{ github.event.workflow_run.event }}
files: artifacts/test-results/**/*.xml
check_run: false
job_summary: false
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ Cargo.lock
config.toml
.temp

assets/generated/*
assets/.generate.lock

.etc/blocks.json

flame.svg
Expand Down
Loading
Loading