这是indexloc提供的服务,不要输入任何密码
Skip to content

🤖 Continuous highway 1.1.0 testing 🛣️ #11330

🤖 Continuous highway 1.1.0 testing 🛣️

🤖 Continuous highway 1.1.0 testing 🛣️ #11330

# Copyright (c) the JPEG XL Project Authors. All rights reserved.
#
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
# Workflow for building and running tests.
name: Build/Test Cross
on:
merge_group:
push:
branches:
- main
- v*.*.x
pull_request:
types: [opened, reopened, labeled, unlabeled, synchronize]
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
compile:
name: Cross-compiling ${{ matrix.identifier }}
if: ${{ !contains(github.event.pull_request.labels.*.name, 'CI:none') }}
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix:
identifier: [armhf, i386]
include:
- arch: armhf
os: ubuntu-24.04-arm
identifier: armhf
test_in_pr: true
build_target: arm-linux-gnueabihf
- arch: i386
identifier: i386
test_in_pr: true
build_target: i686-linux-gnu
cflags: -m32
env:
WILL_RUN_TESTS: ${{ (github.event_name == 'push' || (github.event_name == 'pull_request' && (matrix.test_in_pr || contains(github.event.pull_request.labels.*.name, 'CI:full')))) }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0
with:
egress-policy: audit
- name: Checkout the source
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: true
fetch-depth: 1
- name: Install build deps
run: |
sudo ARCH=${{ matrix.arch }} BUILD_TARGET=${{ matrix.build_target }} \
./tools/scripts/install_deps.sh --cross build extras
- name: Build
run: |
CC=clang CXX=clang++ \
CFLAGS='${{ matrix.cflags }}' CXXFLAGS='${{ matrix.cflags }}' \
BUILD_DIR=build BUILD_TARGET=${{ matrix.build_target }} \
SKIP_TEST=1 TARGETS='all_tests cjxl djxl hwy_list_targets libjxl.so libjxl_dec.so' \
./ci.sh release \
-DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
-DJPEGXL_ENABLE_JNI=OFF
- name: Build stats
run: |
tools/scripts/build_stats.py --save build/stats.json \
--binutils ${{ matrix.build_target }}- \
--max-stack ${{ matrix.max_stack || '0' }} \
cjxl djxl libjxl.so libjxl_dec.so
- name: Prepare artefacts
if: env.WILL_RUN_TESTS == 'true'
run: |
find ./build -regextype egrep -type f -regex '.*\.(a|h|jar|json|log|o)' -delete
find ./build -type f -executable > executable.lst
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
if: env.WILL_RUN_TESTS == 'true'
with:
name: cross_binary-${{ matrix.identifier }}
path: |
build/
executable.lst
retention-days: 1
test:
name: Testing ${{ matrix.identifier }} shard ${{ matrix.shard_number }}
if: ${{ !contains(github.event.pull_request.labels.*.name, 'CI:none') }}
needs: compile
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy:
fail-fast: false
matrix:
shard_number: [0, 1]
identifier: [armhf, i386]
include:
- arch: armhf
os: ubuntu-24.04-arm
identifier: armhf
test_in_pr: true
last_shard: 2
- arch: i386
identifier: i386
test_in_pr: true
last_shard: 2
env:
UPLOAD_TEST_COST: false
LAST_SHARD: ${{ false && 1 || matrix.last_shard}}
# Run the tests on push and when requested in pull_request.
WILL_RUN_TESTS: ${{ (github.event_name == 'push' || (github.event_name == 'pull_request' && (matrix.test_in_pr || contains(github.event.pull_request.labels.*.name, 'CI:full')))) }}
steps:
- name: Harden Runner
uses: step-security/harden-runner@ec9f2d5744a09debf3a187a3f4f675c53b671911 # v2.13.0
with:
egress-policy: audit
- name: Checkout the source
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: true
fetch-depth: 1
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
if: (matrix.shard_number < env.LAST_SHARD) && (env.WILL_RUN_TESTS == 'true')
with:
name: cross_binary-${{ matrix.identifier }}
- name: Install build deps
if: (matrix.shard_number < env.LAST_SHARD) && (env.WILL_RUN_TESTS == 'true')
run: |
sudo ARCH=${{ matrix.arch }} \
./tools/scripts/install_deps.sh --cross extras_runtime runtime
- name: Test ranging
if: ${{ !matrix.disable_tests }}
run: |
mkdir -p ./build/Testing/Temporary
unzip ./tools/scripts/test_cost-${{ matrix.identifier }}.zip -d ./build/Testing/Temporary
- name: Prepare
if: (env.UPLOAD_TEST_COST == 'true') && (matrix.shard_number == 0) && (env.WILL_RUN_TESTS == 'true')
run: |
rm build/Testing/Temporary/CTestCostData.txt
- name: Test
if: (matrix.shard_number < env.LAST_SHARD) && (env.WILL_RUN_TESTS == 'true')
run: |
chmod +x `cat executable.lst`
BUILD_DIR=build \
./ci.sh test \
-I ${{ matrix.shard_number }},,${{ env.LAST_SHARD }} \
-E '(bash_test|conformance_tooling_test|test_jxl_jni_wrapper|test_jpegli_jni_wrapper)'
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
name: Upload test cost
if: (env.UPLOAD_TEST_COST == 'true') && (matrix.shard_number == 0) && (env.WILL_RUN_TESTS == 'true')
with:
name: test_cost-${{ matrix.identifier }}
path: |
build/Testing/Temporary/CTestCostData.txt
retention-days: 1