Skip to content
Merged
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
84 changes: 13 additions & 71 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ env:
CARGO_TERM_COLOR: always
NO_COLOR: "1"
PYTHONUNBUFFERED: "1"
PYTHONUTF8: "1"
PYTHONIOENCODING: "utf-8"
LLVM_VERSION: "21"
LLVM_PREFIX_LINUX: "/usr/lib/llvm-21"
RELEASE_VERSION: ${{ inputs.version }}
Expand Down Expand Up @@ -165,28 +167,11 @@ jobs:
rm -rf "$HOME/.wave/lib/wave/std"
cp -R std "$HOME/.wave/lib/wave/std"

- name: Verify compiler version
- name: Print compiler version
shell: bash
run: |
set -euo pipefail

target/release/wavec -V > /tmp/wavec-version.txt 2>&1 || true
cat /tmp/wavec-version.txt

python3 - <<'PY'
from pathlib import Path
import sys

text = Path("/tmp/wavec-version.txt").read_text(errors="replace")

if "wavec " not in text:
print("missing wavec version output", file=sys.stderr)
sys.exit(1)

if "backend: LLVM 21." not in text:
print("missing LLVM 21 backend output", file=sys.stderr)
sys.exit(1)
PY
target/release/wavec -V 2>&1 || true

- name: Run Wave end-to-end tests
run: python3 tools/run_tests.py
Expand Down Expand Up @@ -282,23 +267,7 @@ jobs:
tar -xzf "$archive" -C "$temp_dir"
package="$temp_dir/wave-v${RELEASE_VERSION}-x86_64-linux-gnu"

env -i PATH=/usr/bin:/bin HOME=/tmp "$package/wavec" -V > /tmp/wavec-version.txt 2>&1 || true
cat /tmp/wavec-version.txt

python3 - <<'PY'
from pathlib import Path
import sys

text = Path("/tmp/wavec-version.txt").read_text(errors="replace")

if "wavec " not in text:
print("missing packaged wavec version output", file=sys.stderr)
sys.exit(1)

if "backend: LLVM 21." not in text:
print("missing packaged LLVM 21 backend output", file=sys.stderr)
sys.exit(1)
PY
env -i PATH=/usr/bin:/bin HOME=/tmp "$package/wavec" -V 2>&1 || true

printf 'fun main() { println("release smoke"); }\n' > "$temp_dir/smoke.wave"
env -i PATH=/usr/bin:/bin HOME=/tmp "$package/wavec" run "$temp_dir/smoke.wave" \
Expand Down Expand Up @@ -406,23 +375,7 @@ jobs:
tar -xzf "$archive" -C "$temp_dir"
package="$temp_dir/wave-v${RELEASE_VERSION}-${MACOS_TARGET}"

env -i PATH=/usr/bin:/bin HOME=/tmp "$package/wavec" -V > /tmp/wavec-version.txt 2>&1 || true
cat /tmp/wavec-version.txt

python3 - <<'PY'
from pathlib import Path
import sys

text = Path("/tmp/wavec-version.txt").read_text(errors="replace")

if "wavec " not in text:
print("missing packaged wavec version output", file=sys.stderr)
sys.exit(1)

if "backend: LLVM 21." not in text:
print("missing packaged LLVM 21 backend output", file=sys.stderr)
sys.exit(1)
PY
env -i PATH=/usr/bin:/bin HOME=/tmp "$package/wavec" -V 2>&1 || true

printf 'fun main() { println("release smoke"); }\n' > "$temp_dir/smoke.wave"
env -i PATH=/usr/bin:/bin HOME=/tmp "$package/wavec" run "$temp_dir/smoke.wave" \
Expand Down Expand Up @@ -503,7 +456,6 @@ jobs:
echo "WAVE_WINDOWS_LLVM_BIN=$llvm_bin" >> "$GITHUB_ENV"
echo "LLVM_SYS_211_PREFIX=$llvm_root" >> "$GITHUB_ENV"
echo "LLVM_CONFIG_PATH=$llvm_config" >> "$GITHUB_ENV"

echo "WAVE_WINDOWS_MINGW_LIB=$(cygpath -w "$rust_mingw_self")" >> "$GITHUB_ENV"

echo "$llvm_bin" >> "$GITHUB_PATH"
Expand Down Expand Up @@ -569,10 +521,16 @@ jobs:

- name: Build and package
shell: msys2 {0}
env:
PYTHONUTF8: "1"
PYTHONIOENCODING: "utf-8"
run: python x.py release x86_64-pc-windows-gnu

- name: Smoke test packaged compiler
shell: msys2 {0}
env:
PYTHONUTF8: "1"
PYTHONIOENCODING: "utf-8"
run: |
set -euo pipefail

Expand All @@ -583,23 +541,7 @@ jobs:
unzip -q "$archive" -d "$temp_dir"
package="$temp_dir/wave-v${RELEASE_VERSION}-x86_64-pc-windows-gnu"

"$package/wavec.exe" -V > /tmp/wavec-version.txt 2>&1 || true
cat /tmp/wavec-version.txt

python - <<'PY'
from pathlib import Path
import sys

text = Path("/tmp/wavec-version.txt").read_text(errors="replace")

if "wavec " not in text:
print("missing packaged wavec.exe version output", file=sys.stderr)
sys.exit(1)

if "backend: LLVM 21." not in text:
print("missing packaged LLVM 21 backend output", file=sys.stderr)
sys.exit(1)
PY
"$package/wavec.exe" -V 2>&1 || true

printf 'fun main() { println("release smoke"); }\n' > "$temp_dir/smoke.wave"
"$package/wavec.exe" run "$(cygpath -w "$temp_dir/smoke.wave")" | grep -Fx "release smoke"
Expand Down
Loading