Skip to content

Run buildifier in a GitHub Actions workflow (#1091) #342

Run buildifier in a GitHub Actions workflow (#1091)

Run buildifier in a GitHub Actions workflow (#1091) #342

Workflow file for this run

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
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
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
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
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