diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0d64d8d9..02d3d67f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -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 }} @@ -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 @@ -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" \ @@ -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" \ @@ -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" @@ -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 @@ -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"