-
Notifications
You must be signed in to change notification settings - Fork 91
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Justfile and release workflow improvements
- Loading branch information
1 parent
5f7bf6d
commit dd1db5d
Showing
3 changed files
with
134 additions
and
62 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,119 @@ | ||
# Run an individual test using the Lune CLI | ||
run-test TEST_NAME: | ||
cargo run -- "tests/{{TEST_NAME}}" | ||
EXT := if os() == "windows" { ".exe" } else { "" } | ||
CWD := invocation_directory() | ||
BIN_NAME := "lune" | ||
|
||
# Default hidden recipe for listing other recipes + cwd | ||
[no-cd] | ||
[no-exit-message] | ||
[private] | ||
default: | ||
#!/usr/bin/env bash | ||
set -euo pipefail | ||
printf "Current directory:\n {{CWD}}\n" | ||
just --list | ||
# Builds the Lune CLI binary | ||
[no-exit-message] | ||
build *ARGS: | ||
#!/usr/bin/env bash | ||
set -euo pipefail | ||
cargo build --bin {{BIN_NAME}} {{ARGS}} | ||
# Run an individual file using the Lune CLI | ||
run-file FILE_NAME: | ||
cargo run -- "{{FILE_NAME}}" | ||
[no-exit-message] | ||
run FILE_PATH: | ||
#!/usr/bin/env bash | ||
set -euo pipefail | ||
cargo run --bin {{BIN_NAME}} -- "{{FILE_PATH}}" | ||
# Run tests for the Lune library | ||
test: | ||
cargo test --lib | ||
[no-exit-message] | ||
test *ARGS: | ||
#!/usr/bin/env bash | ||
set -euo pipefail | ||
cargo test --lib -- {{ARGS}} | ||
# Run tests for the Lune binary | ||
[no-exit-message] | ||
test-bin *ARGS: | ||
#!/usr/bin/env bash | ||
set -euo pipefail | ||
cargo test --bin {{BIN_NAME}} -- {{ARGS}} | ||
# Apply formatting for all Rust & Luau files | ||
[no-exit-message] | ||
fmt: | ||
#!/usr/bin/env bash | ||
set -euo pipefail | ||
stylua scripts tests types \ | ||
--glob "tests/**/*.luau" \ | ||
--glob "!tests/roblox/rbx-test-files/**" | ||
cargo fmt | ||
# Check formatting for all Rust & Luau files | ||
[no-exit-message] | ||
fmt-check: | ||
#!/usr/bin/env bash | ||
set -euo pipefail | ||
stylua scripts --check | ||
stylua types --check | ||
stylua tests --check \ | ||
stylua scripts tests types \ | ||
--glob "tests/**/*.luau" \ | ||
--glob "!tests/roblox/rbx-test-files/**" | ||
cargo fmt --check | ||
# Zips up the built binary into a single zip file | ||
[no-exit-message] | ||
zip-release TARGET_TRIPLE: | ||
#!/usr/bin/env bash | ||
set -euo pipefail | ||
rm -rf staging | ||
rm -rf release.zip | ||
mkdir -p staging | ||
cp "target/{{TARGET_TRIPLE}}/release/{{BIN_NAME}}{{EXT}}" staging/ | ||
cd staging | ||
if [ "{{os_family()}}" = "windows" ]; then | ||
7z a ../release.zip * | ||
else | ||
chmod +x {{BIN_NAME}} | ||
zip ../release.zip * | ||
fi | ||
cd "{{CWD}}" | ||
rm -rf staging | ||
# Used in GitHub workflow to move per-matrix release zips | ||
[no-exit-message] | ||
[private] | ||
unpack-releases RELEASES_DIR: | ||
#!/usr/bin/env bash | ||
set -euo pipefail | ||
# | ||
if [ ! -d "{{RELEASES_DIR}}" ]; then | ||
echo "Releases directory is missing" | ||
exit 1 | ||
fi | ||
# | ||
cd "{{RELEASES_DIR}}" | ||
echo "" | ||
echo "Releases dir:" | ||
ls -lhrt | ||
echo "" | ||
echo "Searching for zipped releases..." | ||
# | ||
for DIR in * ; do | ||
if [ -d "$DIR" ]; then | ||
cd "$DIR" | ||
for FILE in * ; do | ||
if [ ! -d "$FILE" ]; then | ||
if [ "$FILE" = "release.zip" ]; then | ||
echo "Found zipped release '$DIR'" | ||
mv "$FILE" "../$DIR.zip" | ||
rm -rf "../$DIR/" | ||
fi | ||
fi | ||
done | ||
cd .. | ||
fi | ||
done | ||
# | ||
echo "" | ||
echo "Releases dir:" | ||
ls -lhrt |