Improve Core Builds for Linux (#3706)
This commit is contained in:
4
.github/workflows/core-release.yml
vendored
4
.github/workflows/core-release.yml
vendored
@@ -78,8 +78,8 @@ jobs:
|
||||
|
||||
- name: Build mbgl-core for Linux
|
||||
run: |
|
||||
cmake --preset linux-${{ matrix.renderer }}-core -DCMAKE_CXX_COMPILER_LAUNCHER=""
|
||||
cmake --build --preset linux-${{ matrix.renderer }}-core
|
||||
cmake --preset linux-${{ matrix.renderer }} -DCMAKE_CXX_COMPILER_LAUNCHER=""
|
||||
cmake --build build-linux-${{ matrix.renderer }} --target mbgl-core
|
||||
|
||||
- name: Rename artifact
|
||||
run: |
|
||||
|
||||
68
.github/workflows/linux-ci.yml
vendored
68
.github/workflows/linux-ci.yml
vendored
@@ -24,6 +24,9 @@ permissions:
|
||||
contents: read # needed for CodeQL
|
||||
security-events: write # needed for CodeQL
|
||||
|
||||
env:
|
||||
EGL_PLATFORM: surfaceless
|
||||
|
||||
jobs:
|
||||
pre_job:
|
||||
runs-on: ubuntu-22.04
|
||||
@@ -53,7 +56,13 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
renderer: [vulkan, drawable, drawable-rust]
|
||||
variant:
|
||||
- renderer: vulkan
|
||||
rust: false
|
||||
- renderer: opengl
|
||||
rust: false
|
||||
- renderer: opengl
|
||||
rust: true
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -75,17 +84,8 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: .github/scripts/install-linux-deps
|
||||
|
||||
- if: matrix.renderer == 'drawable-rust'
|
||||
run: |
|
||||
echo "renderer_flag_cmake=DMLN_WITH_OPENGL=ON -DMLN_USE_RUST=ON" >> "$GITHUB_ENV"
|
||||
cargo install cxxbridge-cmd --version 1.0.157 --locked
|
||||
|
||||
- if: matrix.renderer == 'drawable'
|
||||
run: |
|
||||
echo "-DMLN_WITH_OPENGL=ON" >> "$GITHUB_ENV"
|
||||
|
||||
- if: matrix.renderer == 'vulkan'
|
||||
run: echo renderer_flag_cmake="-DMLN_WITH_VULKAN=ON -DMLN_WITH_OPENGL=OFF" >> "$GITHUB_ENV"
|
||||
- if: matrix.variant.rust
|
||||
run: cargo install cxxbridge-cmd --version 1.0.157 --locked
|
||||
|
||||
- name: Install sccache
|
||||
run: |
|
||||
@@ -103,7 +103,7 @@ jobs:
|
||||
role-to-assume: ${{ vars.OIDC_AWS_ROLE_TO_ASSUME }}
|
||||
role-session-name: ${{ github.run_id }}
|
||||
|
||||
- name: Build MapLibre Native Core
|
||||
- name: Build MapLibre Native
|
||||
env:
|
||||
CI: 1
|
||||
run: |
|
||||
@@ -118,12 +118,12 @@ jobs:
|
||||
export SCCACHE_S3_NO_CREDENTIALS=1
|
||||
fi
|
||||
|
||||
cmake -B build -GNinja -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=RelWithDebInfo -DMLN_WITH_CLANG_TIDY=ON \
|
||||
cmake --preset linux-${{ matrix.variant.renderer }} \
|
||||
-DMLN_WITH_CLANG_TIDY=ON \
|
||||
-DCMAKE_C_COMPILER_LAUNCHER=sccache \
|
||||
-DCMAKE_CXX_COMPILER_LAUNCHER=sccache \
|
||||
-DMLN_WITH_COVERAGE=ON \
|
||||
${{ env.renderer_flag_cmake }}
|
||||
cmake --build build --target mbgl-core mbgl-test-runner mbgl-render-test-runner mbgl-expression-test mbgl-render mbgl-benchmark-runner
|
||||
-DMLN_WITH_COVERAGE=ON
|
||||
cmake --build build-linux-${{ matrix.variant.renderer }} --target mbgl-core mbgl-test-runner mbgl-render-test-runner mbgl-expression-test mbgl-render mbgl-benchmark-runner
|
||||
|
||||
# mbgl-render (used for size test) & mbgl-benchmark-runner
|
||||
|
||||
@@ -131,26 +131,26 @@ jobs:
|
||||
run: sccache --show-stats
|
||||
|
||||
- name: Upload mbgl-render as artifact
|
||||
if: matrix.renderer == 'drawable' && github.event_name == 'pull_request'
|
||||
if: matrix.variant.renderer == 'opengl' && !matrix.variant.rust && github.event_name == 'pull_request'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: mbgl-render
|
||||
path: |
|
||||
build/bin/mbgl-render
|
||||
build-linux-${{ matrix.variant.renderer }}/bin/mbgl-render
|
||||
|
||||
- name: Upload mbgl-benchmark-runner as artifact
|
||||
if: matrix.renderer == 'drawable' && github.event_name == 'pull_request'
|
||||
if: matrix.variant.renderer == 'opengl' && !matrix.variant.rust && github.event_name == 'pull_request'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: mbgl-benchmark-runner
|
||||
path: |
|
||||
build/mbgl-benchmark-runner
|
||||
build-linux-${{ matrix.variant.renderer }}/mbgl-benchmark-runner
|
||||
|
||||
- name: Upload mbgl-render & mbgl-benchmark-runner to S3
|
||||
if: matrix.renderer == 'drawable' && github.ref == 'refs/heads/main' && vars.OIDC_AWS_ROLE_TO_ASSUME
|
||||
if: matrix.variant.renderer == 'opengl' && !matrix.variant.rust && github.ref == 'refs/heads/main' && vars.OIDC_AWS_ROLE_TO_ASSUME
|
||||
run: |
|
||||
aws s3 cp build/bin/mbgl-render s3://maplibre-native/mbgl-render-main
|
||||
aws s3 cp build/mbgl-benchmark-runner s3://maplibre-native/mbgl-benchmark-runner-main
|
||||
aws s3 cp build-linux-${{ matrix.variant.renderer }}/bin/mbgl-render s3://maplibre-native/mbgl-render-main
|
||||
aws s3 cp build-linux-${{ matrix.variant.renderer }}/mbgl-benchmark-runner s3://maplibre-native/mbgl-benchmark-runner-main
|
||||
|
||||
# CodeQL
|
||||
|
||||
@@ -161,39 +161,39 @@ jobs:
|
||||
|
||||
# unit tests
|
||||
|
||||
- run: chmod +x build/mbgl-test-runner
|
||||
- run: chmod +x build-linux-${{ matrix.variant.renderer }}/mbgl-test-runner
|
||||
|
||||
- name: Run C++ tests
|
||||
continue-on-error: ${{ matrix.renderer == 'vulkan' }}
|
||||
run: xvfb-run -a build/mbgl-test-runner
|
||||
continue-on-error: ${{ matrix.variant.renderer == 'vulkan' }}
|
||||
run: xvfb-run -a build-linux-${{ matrix.variant.renderer }}/mbgl-test-runner
|
||||
|
||||
# render tests
|
||||
|
||||
- run: chmod +x build/mbgl-render-test-runner
|
||||
- run: chmod +x build-linux-${{ matrix.variant.renderer }}/mbgl-render-test-runner
|
||||
|
||||
- name: Run render test
|
||||
id: render_test
|
||||
run: |
|
||||
renderer="${{ matrix.renderer }}"
|
||||
renderer="${{ matrix.variant.renderer }}"
|
||||
if [[ "$renderer" == *-rust ]]; then
|
||||
renderer=${renderer%-rust}
|
||||
fi
|
||||
xvfb-run -a build/mbgl-render-test-runner --manifestPath=metrics/linux-"$renderer".json
|
||||
xvfb-run -a build-linux-${{ matrix.variant.renderer }}/mbgl-render-test-runner --manifestPath=metrics/linux-"$renderer".json
|
||||
|
||||
- name: Upload render test result
|
||||
if: always() && steps.render_test.outcome == 'failure'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: render-test-result-${{ matrix.renderer }}
|
||||
name: render-test-result-${{ matrix.variant.renderer }}
|
||||
path: |
|
||||
metrics/linux-${{ matrix.renderer }}.html
|
||||
metrics/linux-${{ matrix.variant.renderer }}.html
|
||||
|
||||
# expression tests
|
||||
|
||||
- run: chmod +x build/expression-test/mbgl-expression-test
|
||||
- run: chmod +x build-linux-${{ matrix.variant.renderer }}/expression-test/mbgl-expression-test
|
||||
|
||||
- name: Run expression test
|
||||
run: build/expression-test/mbgl-expression-test
|
||||
run: build-linux-${{ matrix.variant.renderer }}/expression-test/mbgl-expression-test
|
||||
|
||||
- if: github.event_name == 'pull_request'
|
||||
uses: ./.github/actions/save-pr-number
|
||||
|
||||
Reference in New Issue
Block a user