Reapply "gh actions: silence missing tzdata warning on android build" #4202
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: Build Artifacts (macOS) | |
on: | |
workflow_dispatch: | |
inputs: | |
logLevel: | |
description: 'Log level' | |
required: true | |
default: 'warning' | |
type: choice | |
options: | |
- info | |
- warning | |
- debug | |
tags: | |
description: 'Test scenario tags' | |
required: false | |
type: boolean | |
pull_request: | |
branches: [master, develop] | |
paths-ignore: | |
- '**/*.md' | |
- '.circleci/**' | |
- '.cirrus.yml' | |
push: | |
branches: [master, develop] | |
paths-ignore: | |
- '**/*.md' | |
- '.circleci/**' | |
- '.cirrus.yml' | |
release: | |
types: [published] | |
schedule: | |
- cron: '0 16 * * *' | |
concurrency: | |
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }} | |
cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }} | |
env: | |
CACHE_EPOCH: 130-2 | |
GOPROXY: direct | |
jobs: | |
mac-release: | |
runs-on: macos-15 | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: [x64, arm64] | |
build_type: [Release] | |
env: | |
BUILD_TYPE: '${{ matrix.build_type }}' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Checkout with shallow submodules | |
run: | | |
# unshallow must come first otherwise submodule may be get unshallowed | |
git fetch --tags --unshallow | |
git submodule update --init --depth 1 | |
- name: Cache toolchain | |
id: toolchain-cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
third_party/llvm-build/Release+Asserts | |
key: ${{ runner.os }}-toolchain-arm64-${{ hashFiles('CLANG_REVISION') }}-v${{ env.CACHE_EPOCH }} | |
- name: Cache crashpad build stage | |
id: crashpad-cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
third_party/crashpad | |
key: ${{ runner.os }}-mac-${{ matrix.arch }}-crashpad-${{ hashFiles('CRASHPAD_COMMIT') }}-v${{ env.CACHE_EPOCH }}-stripped | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: '>=1.20.0' | |
cache-dependency-path: | | |
tools/go.sum | |
third_party/boringssl/src/go.sum | |
- name: Build build tool | |
run: | | |
cd tools | |
go build | |
- name: "Install dependency: prebuilt clang and clang-tidy binaries" | |
if: ${{ steps.toolchain-cache.outputs.cache-hit != 'true' }} | |
run: | | |
./scripts/download-clang-prebuilt-binaries.py | |
rm -f third_party/llvm-build/Release+Asserts/*.tgz | |
- name: Populate depedencies | |
run: | | |
# brew update | |
# brew install ninja cmake p7zip | |
brew install ninja | |
# for depot_tools (required by crashpad) | |
brew install python-setuptools | |
- name: Set up Xcode to 16.0 | |
run: | | |
sudo xcode-select -s /Applications/Xcode_16.0.app | |
- name: Build Binary (crashpad) | |
if: ${{ steps.crashpad-cache.outputs.cache-hit != 'true' }} | |
shell: bash | |
run: | | |
WITH_CPU=${{ matrix.arch }} ./scripts/build-crashpad.sh | |
- name: Install the Apple certificate | |
if: ${{ github.event_name == 'release' }} | |
env: | |
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} | |
P12_PASSWORD: ${{ secrets.P12_PASSWORD }} | |
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }} | |
run: | | |
# create variables | |
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 | |
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db | |
# import certificate and provisioning profile from secrets | |
echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH | |
# create temporary keychain | |
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH | |
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH | |
security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH | |
# import certificate to keychain | |
security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH | |
security list-keychain -d user -s $KEYCHAIN_PATH | |
echo "CODESIGN_IDENTITY=Developer ID Application" >> $GITHUB_ENV | |
echo "KEYCHAIN_PATH=$KEYCHAIN_PATH" >> $GITHUB_ENV | |
- name: Build Binary | |
run: | | |
./tools/build --arch ${{ matrix.arch }} -build-test -build-benchmark | |
- name: Clean up keychain and provisioning profile | |
if: ${{ always() }} | |
run: | | |
if [ ! -z $KEYCHAIN_PATH ]; then | |
security delete-keychain $KEYCHAIN_PATH | |
fi | |
- name: Install rosetta | |
if: ${{ matrix.arch == 'x64' }} | |
run: | | |
/usr/sbin/softwareupdate --install-rosetta --agree-to-license | |
- name: Run tests | |
run: | | |
./build-darwin-${{ matrix.arch }}/yass_test | |
./build-darwin-${{ matrix.arch }}/yass_benchmark | |
- name: Upload dist tarball (including debuginfo) | |
if: ${{ github.event_name == 'release' }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
gh release upload ${{ github.event.release.tag_name }} *.dmg *.zip |