1
Fork 0

Rollup merge of #125590 - ChrisDenton:mingw-ci-3, r=Kobzol

Add a "Setup Python" action for github-hosted runners and remove unnecessary `CUSTOM_MINGW` environment variable

The Setup Python action isn't strictly necessary ([even on Windows](https://github.com/rust-lang/rust/pull/125584)) but it is [recommend by GitHub](https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#specifying-a-python-version).

The `CUSTOM_MINGW` environment variable is redundant now as it's always set for mingw and always unset otherwise.

try-job: x86_64-mingw
try-job: x86_64-mingw
try-job: dist-x86_64-msvc
try-job: dist-x86_64-mingw
This commit is contained in:
Matthias Krüger 2024-05-28 18:04:32 +02:00 committed by GitHub
commit 86f6fae93d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 11 additions and 49 deletions

View file

@ -154,9 +154,12 @@ jobs:
- name: checkout submodules
run: src/ci/scripts/checkout-submodules.sh
- name: install MSYS2
run: src/ci/scripts/install-msys2.sh
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
if: runner.environment == 'github-hosted'
- name: install MinGW
run: src/ci/scripts/install-mingw.sh

View file

@ -378,7 +378,6 @@ auto:
# We are intentionally allowing an old toolchain on this builder (and that's
# incompatible with LLVM downloads today).
NO_DOWNLOAD_CI_LLVM: 1
CUSTOM_MINGW: 1
<<: *job-windows-8c
- image: x86_64-mingw
@ -390,7 +389,6 @@ auto:
# We are intentionally allowing an old toolchain on this builder (and that's
# incompatible with LLVM downloads today).
NO_DOWNLOAD_CI_LLVM: 1
CUSTOM_MINGW: 1
<<: *job-windows-8c
- image: dist-x86_64-msvc
@ -439,7 +437,6 @@ auto:
# incompatible with LLVM downloads today).
NO_DOWNLOAD_CI_LLVM: 1
SCRIPT: python x.py dist bootstrap --include-default-paths
CUSTOM_MINGW: 1
DIST_REQUIRE_ALL_TOOLS: 1
<<: *job-windows-8c
@ -453,7 +450,6 @@ auto:
# We are intentionally allowing an old toolchain on this builder (and that's
# incompatible with LLVM downloads today).
NO_DOWNLOAD_CI_LLVM: 1
CUSTOM_MINGW: 1
DIST_REQUIRE_ALL_TOOLS: 1
<<: *job-windows-8c

View file

@ -1,8 +1,5 @@
#!/bin/bash
# If we need to download a custom MinGW, do so here and set the path
# appropriately.
#
# Otherwise install MinGW through `pacman`
# For mingw builds use a vendored mingw.
set -euo pipefail
IFS=$'\n\t'
@ -16,19 +13,16 @@ if isWindows && isKnownToBeMingwBuild; then
case "${CI_JOB_NAME}" in
*i686*)
bits=32
arch=i686
mingw_archive="${MINGW_ARCHIVE_32}"
;;
*x86_64*)
bits=64
arch=x86_64
mingw_archive="${MINGW_ARCHIVE_64}"
;;
*aarch64*)
# aarch64 is a cross-compiled target. Use the x86_64
# mingw, since that's the host architecture.
bits=64
arch=x86_64
mingw_archive="${MINGW_ARCHIVE_64}"
;;
*)
@ -38,13 +32,9 @@ if isWindows && isKnownToBeMingwBuild; then
;;
esac
if [[ "${CUSTOM_MINGW:-0}" == 0 ]]; then
pacman -S --noconfirm --needed mingw-w64-$arch-toolchain
else
mingw_dir="mingw${bits}"
mingw_dir="mingw${bits}"
curl -o mingw.7z "${MIRRORS_BASE}/${mingw_archive}"
7z x -y mingw.7z > /dev/null
ciCommandAddPath "$(pwd)/${mingw_dir}/bin"
fi
curl -o mingw.7z "${MIRRORS_BASE}/${mingw_archive}"
7z x -y mingw.7z > /dev/null
ciCommandAddPath "$(pwd)/${mingw_dir}/bin"
fi

View file

@ -1,27 +0,0 @@
#!/bin/bash
# Clean up and prepare the MSYS2 installation.
# MSYS2 is used by the MinGW toolchain for assembling things.
set -euo pipefail
IFS=$'\n\t'
source "$(cd "$(dirname "$0")" && pwd)/../shared.sh"
if isWindows; then
# Detect the native Python version installed on the agent. On GitHub
# Actions, the C:\hostedtoolcache\windows\Python directory contains a
# subdirectory for each installed Python version.
#
# The -V flag of the sort command sorts the input by version number.
native_python_version="$(ls /c/hostedtoolcache/windows/Python | sort -Vr | head -n 1)"
# Make sure we use the native python interpreter instead of some msys equivalent
# one way or another. The msys interpreters seem to have weird path conversions
# baked in which break LLVM's build system one way or another, so let's use the
# native version which keeps everything as native as possible.
python_home="/c/hostedtoolcache/windows/Python/${native_python_version}/x64"
if ! [[ -f "${python_home}/python3.exe" ]]; then
cp "${python_home}/python.exe" "${python_home}/python3.exe"
fi
ciCommandAddPath "C:\\hostedtoolcache\\windows\\Python\\${native_python_version}\\x64"
ciCommandAddPath "C:\\hostedtoolcache\\windows\\Python\\${native_python_version}\\x64\\Scripts"
fi