diff --git a/.github/workflows/github-actions-macos-bazel.yml b/.github/workflows/github-actions-macos-bazel.yml new file mode 100644 index 0000000000..ebcbd2bf37 --- /dev/null +++ b/.github/workflows/github-actions-macos-bazel.yml @@ -0,0 +1,48 @@ +name: Build on macOS +on: + push: + branches: + - master # Updated to strictly track master + pull_request: + workflow_dispatch: + +jobs: + Mac-Build: + runs-on: macos-latest + steps: + - name: Setup xcode + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest-stable + + - name: Check out repository code + uses: actions/checkout@v4 + with: + submodules: 'recursive' + + # 1. RESTORE: All jobs (PRs, manual runs, master) get to read the cache + - name: Restore Bazel Disk Cache + uses: actions/cache/restore@v4 + with: + path: ~/.cache/bazel-disk-cache + key: ${{ runner.os }}-bazel-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-bazel- + + - name: Install Bazelisk + run: brew install bazelisk + + - name: Build OpenROAD + run: | + bazelisk build \ + --disk_cache=~/.cache/bazel-disk-cache \ + --experimental_disk_cache_gc_max_size=5G \ + --//:platform=gui //:openroad + + # 2. SAVE: Only executes if this is a push/merge directly to the master branch + - name: Save Bazel Disk Cache + if: github.ref == 'refs/heads/master' && github.event_name == 'push' + uses: actions/cache/save@v4 + with: + path: ~/.cache/bazel-disk-cache + key: ${{ runner.os }}-bazel-${{ github.sha }} \ No newline at end of file