Explicit C++ toolchain on ubuntu-latest
(#1334)
Summary: Pull Request resolved: https://github.com/facebook/yoga/pull/1334 Last change made me discover CMake on Ubuntu defaults to GCC. This change makes it so that we explicitly configure whether to use Clang/LLVM or GCC when building on machines with the `ubuntu-latest` image. Reviewed By: christophpurrer Differential Revision: D47462132 fbshipit-source-id: e81fb6d4b1740ab2913d39b6e90c52d674e5a4f2
This commit is contained in:
committed by
Facebook GitHub Bot
parent
61bf4d15ab
commit
05b2edfb85
19
.github/actions/setup-cpp/action.yml
vendored
19
.github/actions/setup-cpp/action.yml
vendored
@@ -1,4 +1,9 @@
|
|||||||
name: Setup C++ envirionment
|
name: Setup C++ envirionment
|
||||||
|
inputs:
|
||||||
|
toolchain:
|
||||||
|
description: Compiler toolchain to use (Clang, GCC, or MSVC)
|
||||||
|
required: false
|
||||||
|
default: 'Clang'
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: "composite"
|
using: "composite"
|
||||||
@@ -7,6 +12,20 @@ runs:
|
|||||||
if: ${{ runner.os != 'Windows' }}
|
if: ${{ runner.os != 'Windows' }}
|
||||||
uses: ./.github/actions/install-ninja
|
uses: ./.github/actions/install-ninja
|
||||||
|
|
||||||
|
- name: Set Clang as compiler
|
||||||
|
if: ${{ inputs.toolchain == 'Clang' }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "CC=/usr/bin/clang" >> $GITHUB_ENV
|
||||||
|
echo "CXX=/usr/bin/clang++" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Set GCC as compiler
|
||||||
|
if: ${{ inputs.toolchain == 'GCC' }}
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "CC=/usr/bin/gcc" >> $GITHUB_ENV
|
||||||
|
echo "CXX=/usr/bin/g++" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Setup VS Developer Command Prompt
|
- name: Setup VS Developer Command Prompt
|
||||||
if: ${{ runner.os == 'Windows' }}
|
if: ${{ runner.os == 'Windows' }}
|
||||||
uses: ilammy/msvc-dev-cmd@v1
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
16
.github/workflows/validate-cpp.yml
vendored
16
.github/workflows/validate-cpp.yml
vendored
@@ -12,34 +12,38 @@ env:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
name: Build and Test [${{ matrix.os }}][${{ matrix.mode }}]
|
name: Build and Test [${{ matrix.toolchain }}][${{ matrix.mode }}]
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ (matrix.toolchain == 'MSVC') && 'windows-latest' || 'ubuntu-latest' }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
mode: [Debug, Release]
|
mode: [Debug, Release]
|
||||||
os: [ubuntu-latest] # TODO: fix issues building GTest Binary with MSVC in GitHub Actions
|
toolchain: [Clang, GCC] # TODO: fix issues building GTest Binary with MSVC in GitHub Actions
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup
|
- name: Setup
|
||||||
uses: ./.github/actions/setup-cpp
|
uses: ./.github/actions/setup-cpp
|
||||||
|
with:
|
||||||
|
toolchain: ${{ matrix.toolchain }}
|
||||||
|
|
||||||
- name: Unit tests
|
- name: Unit tests
|
||||||
run: ./unit_tests ${{ matrix.mode }}
|
run: ./unit_tests ${{ matrix.mode }}
|
||||||
|
|
||||||
benchmark:
|
benchmark:
|
||||||
name: Benchmark [${{ matrix.os }}]
|
name: Benchmark [${{ matrix.toolchain }}]
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ (matrix.toolchain == 'MSVC') && 'windows-latest' || 'ubuntu-latest' }}
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, windows-latest]
|
toolchain: [Clang, GCC, MSVC]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
- name: Setup
|
- name: Setup
|
||||||
uses: ./.github/actions/setup-cpp
|
uses: ./.github/actions/setup-cpp
|
||||||
|
with:
|
||||||
|
toolchain: ${{ matrix.toolchain }}
|
||||||
|
|
||||||
- name: Build benchmark
|
- name: Build benchmark
|
||||||
run: |
|
run: |
|
||||||
|
Reference in New Issue
Block a user