Redesign Win32 build transition rules #783
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
name: CI for macOS | |
# https://github.com/google/mozc/blob/master/docs/build_mozc_in_osx.md | |
# Run on push. | |
on: push | |
permissions: read-all | |
# Prevent previous workflows from running. | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
env: | |
PYTHON_VENV_ROOT: ${{ github.workspace }}/src/python-venv | |
jobs: | |
build_arm64: | |
# https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md | |
runs-on: macos-14 | |
timeout-minutes: 60 | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Setup Python | |
run: | | |
python3 -m venv ${PYTHON_VENV_ROOT} | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 -m pip install requests | |
- name: Try to restore update_deps cache | |
uses: actions/cache@v4 | |
with: | |
path: src/third_party_cache | |
key: update_deps-${{ runner.os }}-${{ hashFiles('src/build_tools/update_deps.py') }} | |
- name: Install dependencies | |
working-directory: ./src | |
# This command uses src/third_party_cache as the download cache. | |
run: | | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 build_tools/update_deps.py | |
- name: Build Qt | |
working-directory: ./src | |
run: | | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 build_tools/build_qt.py --release --confirm_license --macos_cpus=arm64 | |
echo "MOZC_QT_PATH=${PWD}/third_party/qt" >> $GITHUB_ENV | |
- name: bazel build | |
working-directory: ./src | |
env: | |
USE_BAZEL_VERSION: "7.4.1" | |
run: | | |
bazel build --config oss_macos package --macos_cpus=arm64 --config release_build | |
- name: upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Mozc_arm64.pkg | |
path: src/bazel-bin/mac/Mozc.pkg | |
if-no-files-found: warn | |
build_intel64: | |
# https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md | |
runs-on: macos-14 | |
timeout-minutes: 60 | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Setup Python | |
run: | | |
python3 -m venv ${PYTHON_VENV_ROOT} | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 -m pip install requests | |
- name: Try to restore update_deps cache | |
uses: actions/cache@v4 | |
with: | |
path: src/third_party_cache | |
key: update_deps-${{ runner.os }}-${{ hashFiles('src/build_tools/update_deps.py') }} | |
- name: Install dependencies | |
working-directory: ./src | |
# This command uses src/third_party_cache as the download cache. | |
run: | | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 build_tools/update_deps.py | |
- name: Build Qt | |
working-directory: ./src | |
run: | | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 build_tools/build_qt.py --release --confirm_license --macos_cpus=x86_64 | |
echo "MOZC_QT_PATH=${PWD}/third_party/qt" >> $GITHUB_ENV | |
- name: bazel build | |
working-directory: ./src | |
env: | |
USE_BAZEL_VERSION: "7.4.1" | |
run: | | |
bazel build --config oss_macos package --macos_cpus=x86_64 --config release_build | |
- name: upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Mozc_intel64.pkg | |
path: src/bazel-bin/mac/Mozc.pkg | |
if-no-files-found: warn | |
build_universal_binary: | |
# https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md | |
runs-on: macos-14 | |
timeout-minutes: 90 | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Setup Python | |
run: | | |
python3 -m venv ${PYTHON_VENV_ROOT} | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 -m pip install requests | |
- name: Try to restore update_deps cache | |
uses: actions/cache@v4 | |
with: | |
path: src/third_party_cache | |
key: update_deps-${{ runner.os }}-${{ hashFiles('src/build_tools/update_deps.py') }} | |
- name: Install dependencies | |
working-directory: ./src | |
# This command uses src/third_party_cache as the download cache. | |
run: | | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 build_tools/update_deps.py | |
- name: Build Qt | |
working-directory: ./src | |
run: | | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 build_tools/build_qt.py --release --confirm_license --macos_cpus=x86_64,arm64 | |
echo "MOZC_QT_PATH=${PWD}/third_party/qt" >> $GITHUB_ENV | |
- name: bazel build | |
working-directory: ./src | |
env: | |
USE_BAZEL_VERSION: "7.4.1" | |
run: | | |
bazel build --config oss_macos package --macos_cpus=x86_64,arm64 --config release_build | |
- name: upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Mozc_universal_binary.pkg | |
path: src/bazel-bin/mac/Mozc.pkg | |
if-no-files-found: warn | |
test: | |
# https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md | |
runs-on: macos-14 | |
timeout-minutes: 60 | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Setup Python | |
run: | | |
python3 -m venv ${PYTHON_VENV_ROOT} | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 -m pip install requests | |
- name: Try to restore update_deps cache | |
uses: actions/cache@v4 | |
with: | |
path: src/third_party_cache | |
key: update_deps-${{ runner.os }}-${{ hashFiles('src/build_tools/update_deps.py') }} | |
- name: Install dependencies | |
working-directory: ./src | |
# This command uses src/third_party_cache as the download cache. | |
run: | | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 build_tools/update_deps.py | |
- name: Build Qt | |
working-directory: ./src | |
run: | | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 build_tools/build_qt.py --release --confirm_license | |
echo "MOZC_QT_PATH=${PWD}/third_party/qt" >> $GITHUB_ENV | |
- name: bazel test | |
working-directory: ./src | |
env: | |
USE_BAZEL_VERSION: "7.4.1" | |
run: | | |
bazel test ... --config oss_macos --build_tests_only -c dbg | |
# actions/cache works without this job, but having this would increase the likelihood of cache hit | |
# in other jobs. Another approach would be to use "needs:". | |
# https://docs.github.com/en/actions/using-jobs/using-jobs-in-a-workflow | |
cache_deps: | |
# https://github.com/actions/runner-images/blob/main/images/macos/macos-14-arm64-Readme.md | |
runs-on: macos-14 | |
timeout-minutes: 15 | |
steps: | |
- name: checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
run: | | |
python3 -m venv ${PYTHON_VENV_ROOT} | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 -m pip install requests | |
- name: Try to restore update_deps cache | |
uses: actions/cache@v4 | |
with: | |
path: src/third_party_cache | |
key: update_deps-${{ runner.os }}-${{ hashFiles('src/build_tools/update_deps.py') }} | |
- name: Install dependencies | |
working-directory: ./src | |
# This command uses src/third_party_cache as the download cache. | |
run: | | |
source ${PYTHON_VENV_ROOT}/bin/activate | |
python3 build_tools/update_deps.py --cache_only |