Skip to content

Commit 97171bc

Browse files
committed
Add Windows build
1 parent 87651fa commit 97171bc

File tree

7 files changed

+41
-27
lines changed

7 files changed

+41
-27
lines changed

.github/workflows/build_and_publish_template.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
fail-fast: false
2929
matrix:
3030
python-version: ["3.10", "3.11", "3.12", "3.13"]
31-
os: [ubuntu-22.04, ubuntu-22.04-arm, macos-14]
31+
os: [windows-2022] # ubuntu-22.04, ubuntu-22.04-arm, macos-14,
3232

3333
env:
3434
USE_BAZEL_VERSION: "7.2.1"
@@ -43,6 +43,17 @@ jobs:
4343
uses: actions/setup-python@v5
4444
with:
4545
python-version: ${{ matrix.python-version }}
46+
- name: Setup Developer Command Prompt
47+
if: ${{ matrix.os == 'windows-2022' }}
48+
uses: ilammy/msvc-dev-cmd@v1.13.0
49+
- name: Set up Visual Studio shell
50+
if: ${{ matrix.os == 'windows-2022' }}
51+
uses: egor-tensin/vs-shell@v2
52+
with:
53+
arch: x64
54+
- name: Setup MS Build
55+
if: ${{ matrix.os == 'windows-2022' }}
56+
uses: microsoft/setup-msbuild@v2
4657
- uses: "actions/checkout@v3"
4758
- name: Create directory
4859
run: |

oss/runner_common.sh

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,30 +19,33 @@ setup_env_vars_py() {
1919
# under $SOURCE_DIR/all_dist.
2020
build_and_test_array_record() {
2121
printf 'Creating ArrayRecord wheel for Python Version %s\n' "$PYTHON_VERSION"
22-
if [ "$(uname)" = "Darwin" ]; then
23-
setup_env_vars_py "$PYTHON_MAJOR_VERSION" "$PYTHON_MINOR_VERSION"
24-
"$PYTHON_BIN" -m pip install -U setuptools wheel etils[epath]
25-
sh "${SOURCE_DIR}"'/oss/build_whl.sh'
26-
else
27-
# Automatically decide which platform to build for by checking on which
28-
# platform this runs.
29-
AUDITWHEEL_PLATFORM='manylinux2014_'"$(uname -m)"
30-
docker rmi -f array_record:${PYTHON_VERSION}
31-
docker rm -f array_record
32-
DOCKER_BUILDKIT=1 docker build --progress=plain --no-cache \
33-
--build-arg AUDITWHEEL_PLATFORM="${AUDITWHEEL_PLATFORM}" \
34-
--build-arg PYTHON_VERSION="${PYTHON_MAJOR_VERSION}""${PYTHON_MINOR_VERSION}" \
35-
--build-arg BAZEL_VERSION="${BAZEL_VERSION}" \
36-
-t array_record:"${PYTHON_VERSION}" "${SOURCE_DIR}"'/oss'
22+
case "$(uname)" in
23+
Darwin*|CYGWIN*|MINGW*|MSYS_NT*)
24+
setup_env_vars_py "$PYTHON_MAJOR_VERSION" "$PYTHON_MINOR_VERSION"
25+
"$PYTHON_BIN" -m pip install -U setuptools wheel etils[epath]
26+
sh "${SOURCE_DIR}"'/oss/build_whl.sh'
27+
;;
28+
*)
29+
# Automatically decide which platform to build for by checking on which
30+
# platform this runs.
31+
AUDITWHEEL_PLATFORM='manylinux2014_'"$(uname -m)"
32+
docker rmi -f array_record:${PYTHON_VERSION}
33+
docker rm -f array_record
34+
DOCKER_BUILDKIT=1 docker build --progress=plain --no-cache \
35+
--build-arg AUDITWHEEL_PLATFORM="${AUDITWHEEL_PLATFORM}" \
36+
--build-arg PYTHON_VERSION="${PYTHON_MAJOR_VERSION}""${PYTHON_MINOR_VERSION}" \
37+
--build-arg BAZEL_VERSION="${BAZEL_VERSION}" \
38+
-t array_record:"${PYTHON_VERSION}" "${SOURCE_DIR}"'/oss'
3739

38-
docker run --rm -a stdin -a stdout -a stderr \
39-
--env PYTHON_VERSION="${PYTHON_MAJOR_VERSION}"'.'"${PYTHON_MINOR_VERSION}" \
40-
--env PYTHON_MAJOR_VERSION="${PYTHON_MAJOR_VERSION}" \
41-
--env PYTHON_MINOR_VERSION="${PYTHON_MINOR_VERSION}" \
42-
--env BAZEL_VERSION="${BAZEL_VERSION}" \
43-
--env AUDITWHEEL_PLATFORM="${AUDITWHEEL_PLATFORM}" \
44-
-v "${SOURCE_DIR}":"${OUTPUT_DIR}" \
45-
--name array_record array_record:"${PYTHON_VERSION}" \
46-
sh oss/build_whl.sh
47-
fi
48-
}
40+
docker run --rm -a stdin -a stdout -a stderr \
41+
--env PYTHON_VERSION="${PYTHON_MAJOR_VERSION}"'.'"${PYTHON_MINOR_VERSION}" \
42+
--env PYTHON_MAJOR_VERSION="${PYTHON_MAJOR_VERSION}" \
43+
--env PYTHON_MINOR_VERSION="${PYTHON_MINOR_VERSION}" \
44+
--env BAZEL_VERSION="${BAZEL_VERSION}" \
45+
--env AUDITWHEEL_PLATFORM="${AUDITWHEEL_PLATFORM}" \
46+
-v "${SOURCE_DIR}":"${OUTPUT_DIR}" \
47+
--name array_record array_record:"${PYTHON_VERSION}" \
48+
sh oss/build_whl.sh
49+
;;
50+
esac
51+
}

0 commit comments

Comments
 (0)