Debug outputs

This commit is contained in:
Bart Thomee
2025-07-27 14:04:49 -04:00
parent a5217e433d
commit bd70aad699
3 changed files with 91 additions and 135 deletions

View File

@@ -144,30 +144,11 @@ jobs:
strategy_matrix_build_type: ${{ steps.generate.outputs.strategy_matrix_build_type }}
strategy_matrix_cmake_args: ${{ steps.generate.outputs.strategy_matrix_cmake_args }}
# Install and cache the dependencies using various configurations.
install-dependencies:
# Debug outputs
debug-outputs:
needs:
- generate-outputs
uses: ./.github/workflows/install-dependencies.yml
strategy:
fail-fast: false
matrix:
architecture: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_architecture) }}
os: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_os) }}
build_type: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_build_type) }}
with:
build_dir: ${{ inputs.build_dir }}
build_type: ${{ strategy.matrix.build_type }}
conan_global_conf: ${{ needs.generate-outputs.outputs.conan_global_conf }}
container: ghcr.io/xrplf/ci/${{ strategy.matrix.os.distro }}-${{ strategy.matrix.os.release }}:${{ strategy.matrix.os.compiler_name }}-${{ strategy.matrix.os.compiler_version }}
runner: ${{ strategy.matrix.architecture.runner }}
# Build and test the binary using various configurations.
build-and-test:
needs:
- generate-outputs
- install-dependencies
uses: ./.github/workflows/build-nix.yml
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
@@ -175,11 +156,52 @@ jobs:
os: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_os) }}
build_type: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_build_type) }}
cmake_args: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_cmake_args) }}
with:
build_dir: ${{ inputs.build_dir }}
build_type: ${{ strategy.matrix.build_type }}
cmake_args: ${{ strategy.matrix.cmake_args }}
cmake_generator: "Ninja"
conan_global_conf: ${{ needs.generate-outputs.outputs.conan_global_conf }}
container: ghcr.io/xrplf/ci/${{ strategy.matrix.os.distro }}-${{ strategy.matrix.os.release }}:${{ strategy.matrix.os.compiler_name }}-${{ strategy.matrix.os.compiler_version }}
runner: ${{ strategy.matrix.architecture.runner }}
steps:
- name: Debug outputs
run: |
echo "Platform: ${{ strategy.matrix.architecture.platform }}"
echo "Runner: ${{ strategy.matrix.architecture.runner }}"
echo "OS: ${{ strategy.matrix.os.distro }}-${{ strategy.matrix.os.release }}"
echo "Compiler: ${{ strategy.matrix.os.compiler_name }}-${{ strategy.matrix.os.compiler_version }}"
echo "Build Type: ${{ strategy.matrix.build_type }}"
echo "CMake Args: ${{ strategy.matrix.cmake_args }}"
# # Install and cache the dependencies using various configurations.
# install-dependencies:
# needs:
# - generate-outputs
# uses: ./.github/workflows/install-dependencies.yml
# strategy:
# fail-fast: false
# matrix:
# architecture: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_architecture) }}
# os: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_os) }}
# build_type: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_build_type) }}
# with:
# build_dir: ${{ inputs.build_dir }}
# build_type: ${{ strategy.matrix.build_type }}
# conan_global_conf: ${{ needs.generate-outputs.outputs.conan_global_conf }}
# container: ghcr.io/xrplf/ci/${{ strategy.matrix.os.distro }}-${{ strategy.matrix.os.release }}:${{ strategy.matrix.os.compiler_name }}-${{ strategy.matrix.os.compiler_version }}
# runner: ${{ strategy.matrix.architecture.runner }}
#
# # Build and test the binary using various configurations.
# build-and-test:
# needs:
# - generate-outputs
# - install-dependencies
# uses: ./.github/workflows/build-nix.yml
# strategy:
# fail-fast: false
# matrix:
# architecture: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_architecture) }}
# os: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_os) }}
# build_type: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_build_type) }}
# cmake_args: ${{ fromJson(needs.generate-outputs.outputs.strategy_matrix_cmake_args) }}
# with:
# build_dir: ${{ inputs.build_dir }}
# build_type: ${{ strategy.matrix.build_type }}
# cmake_args: ${{ strategy.matrix.cmake_args }}
# cmake_generator: "Ninja"
# conan_global_conf: ${{ needs.generate-outputs.outputs.conan_global_conf }}
# container: ghcr.io/xrplf/ci/${{ strategy.matrix.os.distro }}-${{ strategy.matrix.os.release }}:${{ strategy.matrix.os.compiler_name }}-${{ strategy.matrix.os.compiler_version }}
# runner: ${{ strategy.matrix.architecture.runner }}

View File

@@ -107,42 +107,42 @@ jobs:
strategy_matrix_build_type: ${{ env.STRATEGY_MATRIX_BUILD_TYPE }}
strategy_matrix_cmake_args: ${{ env.STRATEGY_MATRIX_CMAKE_ARGS }}
# Install and cache the dependencies using various configurations.
install-dependencies:
needs:
- expose-env
uses: ./.github/workflows/install-dependencies.yml
strategy:
fail-fast: false
matrix:
architecture: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_architecture) }}
os: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_os) }}
build_type: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_build_type) }}
with:
build_dir: ${{ inputs.build_dir }}
build_type: ${{ strategy.matrix.build_type }}
conan_global_conf: ${{ needs.expose-env.outputs.conan_global_conf }}
container: ghcr.io/xrplf/ci/${{ strategy.matrix.os.distro }}-${{ strategy.matrix.os.release }}:${{ strategy.matrix.os.compiler_name }}-${{ strategy.matrix.os.compiler_version }}
runner: ${{ strategy.matrix.architecture.runner }}
# Build and test the binary using various configurations.
build-and-test:
needs:
- expose-env
- install-dependencies
uses: ./.github/workflows/build-nix.yml
strategy:
fail-fast: false
matrix:
architecture: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_architecture) }}
os: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_os) }}
build_type: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_build_type) }}
cmake_args: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_cmake_args) }}
with:
build_dir: ${{ inputs.build_dir }}
build_type: ${{ strategy.matrix.build_type }}
cmake_args: ${{ strategy.matrix.cmake_args }}
cmake_generator: "Ninja"
conan_global_conf: ${{ needs.expose-env.outputs.conan_global_conf }}
container: ghcr.io/xrplf/ci/${{ strategy.matrix.os.distro }}-${{ strategy.matrix.os.release }}:${{ strategy.matrix.os.compiler_name }}-${{ strategy.matrix.os.compiler_version }}
runner: ${{ strategy.matrix.architecture.runner }}
# # Install and cache the dependencies using various configurations.
# install-dependencies:
# needs:
# - expose-env
# uses: ./.github/workflows/install-dependencies.yml
# strategy:
# fail-fast: false
# matrix:
# architecture: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_architecture) }}
# os: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_os) }}
# build_type: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_build_type) }}
# with:
# build_dir: ${{ inputs.build_dir }}
# build_type: ${{ strategy.matrix.build_type }}
# conan_global_conf: ${{ needs.expose-env.outputs.conan_global_conf }}
# container: ghcr.io/xrplf/ci/${{ strategy.matrix.os.distro }}-${{ strategy.matrix.os.release }}:${{ strategy.matrix.os.compiler_name }}-${{ strategy.matrix.os.compiler_version }}
# runner: ${{ strategy.matrix.architecture.runner }}
#
# # Build and test the binary using various configurations.
# build-and-test:
# needs:
# - expose-env
# - install-dependencies
# uses: ./.github/workflows/build-nix.yml
# strategy:
# fail-fast: false
# matrix:
# architecture: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_architecture) }}
# os: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_os) }}
# build_type: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_build_type) }}
# cmake_args: ${{ fromJson(needs.expose-env.outputs.strategy_matrix_cmake_args) }}
# with:
# build_dir: ${{ inputs.build_dir }}
# build_type: ${{ strategy.matrix.build_type }}
# cmake_args: ${{ strategy.matrix.cmake_args }}
# cmake_generator: "Ninja"
# conan_global_conf: ${{ needs.expose-env.outputs.conan_global_conf }}
# container: ghcr.io/xrplf/ci/${{ strategy.matrix.os.distro }}-${{ strategy.matrix.os.release }}:${{ strategy.matrix.os.compiler_name }}-${{ strategy.matrix.os.compiler_version }}
# runner: ${{ strategy.matrix.architecture.runner }}

View File

@@ -1,66 +0,0 @@
# This workflow is used to generate a strategy matrix for Linux, Windows, and
# MacOS build and test jobs.
name: generate-matrix
on:
workflow_call:
inputs:
architecture:
description: 'A string representing a JSON array holding objects containing the "platform" (e.g. "linux/arm64") and "runner" (e.g. "ubuntu-24.04-arm") to use.'
required: true
type: string
os:
description: 'A string representing a JSON array holding objects containing the "distro" (e.g. "debian"), "release" (e.g. "bookworm"), "compiler_name" (e.g. "gcc") and "compiler_version" (e.g. "13") to use.'
required: true
type: string
build_type:
description: 'A string representing a JSON array holding strings with the build type (e.g. "Debug", "Release") to use.'
required: true
type: string
cmake_args:
description: 'A string representing a JSON array holding strings with the CMake arguments (e.g. "-DUnity=ON", "-DUnity=OFF") to use. Multiple arguments can be specified by separating them with a space (e.g. "-DUnity=ON -DVoidstar=ON").'
required: true
type: string
# Generate the JSON outputs by using JQ to compact the JSON string.
# * This workflow can be called as follows:
# ```yaml
# generate-matrix:
# uses: ./.github/workflows/generate-matrix.yml
# with:
# architecture: [...]
# os: [...]
# build_type: [...]
# cmake_args: [...]
# ```
# * This workflow can be used as follows:
# ```yaml
# use-matrix:
# needs: generate-matrix
# strategy:
# fail-fast: false
# matrix:
# architecture: ${{ fromJson(needs.generate-matrix.outputs.architecture) }}
# os: ${{ fromJson(needs.generate-matrix.outputs.os) }}
# build_type: ${{ fromJson(needs.generate-matrix.outputs.build_type) }}
# cmake_args: ${{ fromJson(needs.generate-matrix.outputs.cmake_args) }}
# runs-on: ${{ matrix.architecture.runner }}
# container: ghcr.io/xrplf/ci/${{ matrix.os.distro }}-${{ matrix.os.release }}:${{ matrix.os.compiler_name }}-${{ matrix.os.compiler_version }}
# ...
# ```
jobs:
generate-matrix:
runs-on: ubuntu-latest
steps:
- name: Generate outputs
id: generate
run: |
echo "architecture=$(jq -c <<< '${{ inputs.architecture }}')" >> "$GITHUB_OUTPUT"
echo "os=$(jq -c <<< '${{ inputs.os }}')" >> "$GITHUB_OUTPUT"
echo "build_type=$(jq -c <<< '${{ inputs.build_type }}')" >> "$GITHUB_OUTPUT"
echo "cmake_args=$(jq -c <<< '${{ inputs.cmake_args }}')" >> "$GITHUB_OUTPUT"
outputs:
architecture: ${{ steps.generate.outputs.architecture }}
os: ${{ steps.generate.outputs.os }}
build_type: ${{ steps.generate.outputs.build_type }}
cmake_args: ${{ steps.generate.outputs.cmake_args }}