|
|
|
name: Objective-C Tests
|
|
|
|
|
|
|
|
on:
|
|
|
|
workflow_call:
|
|
|
|
inputs:
|
|
|
|
safe-checkout:
|
|
|
|
required: true
|
|
|
|
description: "The SHA key for the commit we want to run over"
|
|
|
|
type: string
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
xcode:
|
|
|
|
strategy:
|
|
|
|
fail-fast: false # Don't cancel all jobs if one fails.
|
|
|
|
matrix:
|
|
|
|
include:
|
|
|
|
- name: macOS
|
|
|
|
config: osx
|
|
|
|
flags: --skip-xcode-ios --skip-xcode-tvos --skip-objc-conformance
|
|
|
|
# The iOS simulator takes a while to start up, so Debug & Release are run in
|
|
|
|
# parallel to get the testing done faster.
|
|
|
|
- name: iOS Debug
|
|
|
|
config: ios_debug
|
|
|
|
flags: --skip-xcode-osx --skip-xcode-tvos --skip-objc-conformance --skip-xcode-release
|
|
|
|
- name: iOS Release
|
|
|
|
config: ios_release
|
|
|
|
flags: --skip-xcode-osx --skip-xcode-tvos --skip-objc-conformance --skip-xcode-debug
|
|
|
|
|
|
|
|
name: Xcode ${{ matrix.name}}
|
|
|
|
runs-on: macos-12
|
|
|
|
env:
|
|
|
|
DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer
|
|
|
|
steps:
|
|
|
|
- name: Checkout pending changes
|
|
|
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
|
|
|
with:
|
|
|
|
ref: ${{ inputs.safe-checkout }}
|
|
|
|
|
|
|
|
- name: Setup ccache
|
|
|
|
uses: ./.github/actions/ccache
|
|
|
|
with:
|
|
|
|
cache-prefix: objectivec_macos_${{ matrix.config }}
|
|
|
|
support-modules: true
|
|
|
|
|
|
|
|
- name: Run tests
|
|
|
|
uses: ./.github/actions/bazel
|
|
|
|
env:
|
|
|
|
CC: ${{ github.workspace }}/ci/clang_wrapper
|
|
|
|
CXX: ${{ github.workspace }}/ci/clang_wrapper++
|
|
|
|
with:
|
|
|
|
credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }}
|
|
|
|
bazel-cache: objectivec_macos/${{ matrix.config }}
|
|
|
|
bash: objectivec/DevTools/full_mac_build.sh ${{ matrix.flags }}
|
|
|
|
|
|
|
|
- name: Report ccache stats
|
|
|
|
shell: bash
|
|
|
|
run: ccache -s -v
|
|
|
|
|
|
|
|
pod-lib-lint:
|
|
|
|
strategy:
|
|
|
|
fail-fast: false # Don't cancel all jobs if one fails.
|
|
|
|
matrix:
|
|
|
|
# Add back 'watchos'. See CocoaPods/CocoaPods#11558
|
|
|
|
PLATFORM: ["ios", "macos", "tvos"]
|
|
|
|
CONFIGURATION: ["Debug", "Release"]
|
|
|
|
name: CocoaPods ${{ matrix.PLATFORM}} ${{ matrix.CONFIGURATION}}
|
|
|
|
runs-on: macos-12
|
|
|
|
env:
|
|
|
|
DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer
|
|
|
|
steps:
|
|
|
|
- name: Checkout pending changes
|
|
|
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
|
|
|
with:
|
|
|
|
ref: ${{ inputs.safe-checkout }}
|
|
|
|
- name: Pod lib lint
|
|
|
|
run: |
|
|
|
|
pod lib lint --verbose \
|
|
|
|
--configuration=${{ matrix.CONFIGURATION }} \
|
|
|
|
--platforms=${{ matrix.PLATFORM }} \
|
|
|
|
Protobuf.podspec
|
|
|
|
|
|
|
|
bazel:
|
|
|
|
strategy:
|
|
|
|
fail-fast: false # Don't cancel all jobs if one fails.
|
|
|
|
matrix:
|
|
|
|
include:
|
|
|
|
# TODO: Could add iOS to atleast build the objc_library targets for that.
|
|
|
|
- name: macOS
|
|
|
|
bazel: //objectivec/...
|
|
|
|
name: Bazel ${{ matrix.name }}
|
|
|
|
runs-on: macos-12
|
|
|
|
steps:
|
|
|
|
- name: Checkout pending changes
|
|
|
|
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
|
|
|
|
with:
|
|
|
|
ref: ${{ inputs.safe-checkout }}
|
|
|
|
- name: Run tests
|
|
|
|
uses: ./.github/actions/bazel
|
|
|
|
with:
|
|
|
|
credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }}
|
|
|
|
bazel: test ${{ matrix.bazel }}
|
|
|
|
bazel-cache: objc_${{ matrix.name }}
|