From a112d93a9240433a6dea9c17fe73094565b8b1b4 Mon Sep 17 00:00:00 2001 From: Miguel Company Date: Tue, 23 Jun 2026 16:03:56 +0200 Subject: [PATCH] Make `skip-ci` label report required statuses as pass (#6442) * Refs #25442. Update Windows workflows Signed-off-by: Miguel Company * Refs #25442. Update Mac workflows Signed-off-by: Miguel Company * Refs #25442. Update Sanitizer workflows Signed-off-by: Miguel Company * Refs #25442. Update Ubuntu workflows Signed-off-by: Miguel Company * Refs #25442. Improve readability. Signed-off-by: Miguel Company * Refs #25442. Fix condition for add-label. Signed-off-by: Miguel Company --------- Signed-off-by: Miguel Company (cherry picked from commit 2ff2b6031f64a92d56c7495b0ecf8fc853bea847) # Conflicts: # .github/workflows/reusable-ubuntu-ci.yml # .github/workflows/reusable-windows-ci.yml # .github/workflows/sanitizers-ci.yml # .github/workflows/windows-ci.yml --- .github/workflows/mac-ci.yml | 14 +- .github/workflows/reusable-mac-ci.yml | 22 ++- .github/workflows/reusable-ubuntu-ci.yml | 219 ++++++++++++++++++++-- .github/workflows/reusable-windows-ci.yml | 119 ++++++++++++ .github/workflows/sanitizers-ci.yml | 27 ++- .github/workflows/ubuntu-ci.yml | 15 +- .github/workflows/windows-ci.yml | 17 +- 7 files changed, 401 insertions(+), 32 deletions(-) diff --git a/.github/workflows/mac-ci.yml b/.github/workflows/mac-ci.yml index a1c5b821924..d9c17af111d 100644 --- a/.github/workflows/mac-ci.yml +++ b/.github/workflows/mac-ci.yml @@ -48,10 +48,7 @@ concurrency: jobs: mac-ci: - if: ${{ ( - !contains(github.event.pull_request.labels.*.name, 'skip-ci') && - !contains(github.event.pull_request.labels.*.name, 'conflicts') - ) }} + if: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'conflicts') }} uses: ./.github/workflows/reusable-mac-ci.yml with: label: ${{ inputs.label || 'mac-ci' }} @@ -60,4 +57,11 @@ jobs: ctest-args: ${{ inputs.ctest-args }} fastdds-branch: ${{ inputs.fastdds_branch || github.ref || '2.14.x' }} use-ccache: ${{ ((inputs.use-ccache == true) && true) || false }} - run-tests: ${{ ((inputs.run-tests == true) && true) || (github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no-test')) }} + run-build: ${{ !(github.event_name == 'pull_request') || + !contains(github.event.pull_request.labels.*.name, 'skip-ci') }} + run-tests: ${{ (inputs.run-tests == true) || + ( + (github.event_name == 'pull_request') && + (!contains(github.event.pull_request.labels.*.name, 'no-test')) && + (!contains(github.event.pull_request.labels.*.name, 'skip-ci')) + ) }} diff --git a/.github/workflows/reusable-mac-ci.yml b/.github/workflows/reusable-mac-ci.yml index 317a43fb90a..f5e5b8045a5 100644 --- a/.github/workflows/reusable-mac-ci.yml +++ b/.github/workflows/reusable-mac-ci.yml @@ -33,6 +33,11 @@ on: required: false type: boolean default: false + run-build: + description: 'Build Fast DDS (CI skipped otherwise)' + required: false + type: boolean + default: true run-tests: description: 'Run test suite of Fast DDS' required: false @@ -56,6 +61,7 @@ jobs: - 'RelWithDebInfo' steps: - name: Sync eProsima/Fast-DDS repository + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/checkout@v0 with: path: src/fastrtps @@ -63,16 +69,19 @@ jobs: ref: ${{ inputs.fastdds-branch }} - name: Install Fix Python version + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/setup-python@v0 with: python-version: '3.11' - name: Get minimum supported version of CMake + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/get-cmake@v0 with: cmakeVersion: '3.22.6' - name: Install brew dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/macos/install_brew_packages@v0 with: packages: llvm tinyxml2 openssl@3.0 @@ -80,17 +89,19 @@ jobs: upgrade: false - name: Install colcon + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/macos/install_colcon@v0 - name: Install Python dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/macos/install_python_packages@v0 with: packages: vcstool xmlschema upgrade: false - name: Setup CCache + if: ${{ inputs.run-build == true && inputs.use-ccache == true }} uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 - if: ${{ inputs.use-ccache == true }} with: api_token: ${{ secrets.GITHUB_TOKEN }} @@ -99,6 +110,7 @@ jobs: - name: Get Fast CDR branch id: get_fastcdr_branch + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0 with: remote_repository: eProsima/Fast-CDR @@ -106,12 +118,14 @@ jobs: - name: Download Fast CDR uses: eProsima/eProsima-CI/external/checkout@v0 + if: ${{ inputs.run-build == true }} with: repository: eProsima/Fast-CDR path: ${{ github.workspace }}/src/fastcdr ref: ${{ steps.get_fastcdr_branch.outputs.deduced_branch }} - name: Fetch Fast DDS dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/vcs_import@v0 with: vcs_repos_file: ${{ github.workspace }}/src/fastrtps/fastrtps.repos @@ -119,6 +133,7 @@ jobs: skip_existing: 'true' - name: Fetch Fast DDS CI dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/vcs_import@v0 with: vcs_repos_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_test.repos @@ -131,6 +146,7 @@ jobs: # - Not working solution: https://github.com/macports/macports-ports/pull/21839/files - name: Colcon build continue-on-error: false + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_build.meta ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_test.meta @@ -141,7 +157,7 @@ jobs: workspace: ${{ github.workspace }} - name: Upload build artifacts - if: ${{ inputs.run-tests == true }} + if: ${{ inputs.run-build == true && inputs.run-tests == true }} uses: eProsima/eProsima-CI/external/upload-artifact@v0 with: name: fastdds_build_${{ inputs.label }} @@ -215,8 +231,8 @@ jobs: sudo echo "ff1e::ffff:efff:1 acme.org.test" | sudo tee -a /etc/hosts - name: Colcon test - if: ${{ inputs.run-tests == true }} id: test + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/colcon_test@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_test.meta diff --git a/.github/workflows/reusable-ubuntu-ci.yml b/.github/workflows/reusable-ubuntu-ci.yml index 9d592aaa866..cace446f358 100644 --- a/.github/workflows/reusable-ubuntu-ci.yml +++ b/.github/workflows/reusable-ubuntu-ci.yml @@ -73,7 +73,6 @@ defaults: jobs: fastdds_build: runs-on: ${{ inputs.os-image }} - if: ${{ inputs.run-build == true }} strategy: fail-fast: false matrix: @@ -89,9 +88,11 @@ jobs: repo: eProsima/Fast-DDS - name: Free disk space + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/free_disk_space@v0 - name: Sync eProsima/Fast-DDS repository + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/checkout@v0 with: path: src/fastrtps @@ -99,16 +100,19 @@ jobs: ref: ${{ inputs.fastdds-branch }} - name: Install Fix Python version + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/setup-python@v0 with: python-version: '3.11' - name: Get minimum supported version of CMake + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/get-cmake@v0 with: cmakeVersion: '3.22.6' - name: Install apt dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 with: packages: libasio-dev libtinyxml2-dev libssl-dev @@ -116,9 +120,11 @@ jobs: upgrade: false - name: Install colcon + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0 - name: Install Python dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 with: packages: vcstool xmlschema @@ -126,18 +132,20 @@ jobs: - name: Setup CCache uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 - if: ${{ inputs.use-ccache == true }} + if: ${{ inputs.run-build == true && inputs.use-ccache == true }} with: api_token: ${{ secrets.GITHUB_TOKEN }} - name: Get Fast CDR branch id: get_fastcdr_branch + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0 with: remote_repository: eProsima/Fast-CDR fallback_branch: ${{ inputs.fastcdr-branch }} - name: Download Fast CDR + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/checkout@v0 with: repository: eProsima/Fast-CDR @@ -145,6 +153,7 @@ jobs: ref: ${{ steps.get_fastcdr_branch.outputs.deduced_branch }} - name: Fetch Fast DDS dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/vcs_import@v0 with: vcs_repos_file: ${{ github.workspace }}/src/fastrtps/fastrtps.repos @@ -156,6 +165,7 @@ jobs: # we disable the compilation of the tools here and enable it in the Fast DDS test job. - name: Colcon build continue-on-error: false + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_build.meta @@ -166,6 +176,7 @@ jobs: workspace: ${{ github.workspace }} - name: Upload build artifacts + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/upload-artifact@v0 with: name: fastdds_build_${{ inputs.label }} @@ -174,7 +185,6 @@ jobs: fastdds_test: needs: fastdds_build runs-on: ${{ inputs.os-image }} - if: ${{ inputs.run-tests == true }} strategy: fail-fast: false matrix: @@ -182,44 +192,52 @@ jobs: - 'RelWithDebInfo' steps: - name: Free disk space + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/free_disk_space@v0 - name: Download build artifacts + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/external/download-artifact@v0 with: name: fastdds_build_${{ inputs.label }} path: ${{ github.workspace }} - name: Install Fix Python version + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/external/setup-python@v0 with: python-version: '3.11' - name: Get minimum supported version of CMake + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/external/get-cmake@v0 with: cmakeVersion: '3.22.6' - name: Install apt packages + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 with: packages: libasio-dev libtinyxml2-dev libssl-dev - name: Install colcon + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0 - name: Install Python dependencies + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 with: packages: vcstool xmlschema - name: Setup CCache + if: ${{ inputs.run-tests == true && inputs.use-ccache == true }} uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 - if: ${{ inputs.use-ccache == true }} with: api_token: ${{ secrets.GITHUB_TOKEN }} - name: Set up hosts file for DNS testing + if: ${{ inputs.run-tests == true }} run: | sudo echo "" | sudo tee -a /etc/hosts sudo echo "127.0.0.1 localhost.test" | sudo tee -a /etc/hosts @@ -235,6 +253,7 @@ jobs: # which entails logout/login or rebooting the machine. This is not feasible in a CI environment. - name: Fetch Fast DDS CI dependencies + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/vcs_import@v0 with: vcs_repos_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_test.repos @@ -243,6 +262,7 @@ jobs: - name: Colcon build continue-on-error: false + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_build.meta ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_test.meta @@ -254,6 +274,7 @@ jobs: - name: Colcon test id: test + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/colcon_test@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_test.meta @@ -266,7 +287,7 @@ jobs: - name: Fast DDS test summary uses: eProsima/eProsima-CI/ubuntu/junit_summary@v0 - if: ${{ !cancelled() }} + if: ${{ !cancelled() && inputs.run-tests == true }} with: junit_reports_dir: "${{ steps.test.outputs.ctest_results_path }}" print_summary: 'True' @@ -285,51 +306,72 @@ jobs: - 'RelWithDebInfo' steps: - name: Free disk space + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/free_disk_space@v0 - name: Download build artifacts + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/download-artifact@v0 with: name: fastdds_build_${{ inputs.label }} path: ${{ github.workspace }} - name: Install Fix Python version + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/setup-python@v0 with: python-version: '3.11' - name: Get minimum supported version of CMake + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/get-cmake@v0 with: cmakeVersion: '3.22.6' - name: Install apt packages + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 with: +<<<<<<< HEAD packages: libasio-dev libtinyxml2-dev libssl-dev swig +======= + packages: libasio-dev libtinyxml2-dev libssl-dev swig4.1 + + - name: Install and configure SWIG test + if: ${{ inputs.run-build == true }} + run: | + sudo apt-get install -y swig4.1 + sudo update-alternatives --install /usr/bin/swig swig /usr/bin/swig4.1 100 + sudo update-alternatives --set swig /usr/bin/swig4.1 + swig -version +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) - name: Install colcon + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0 - name: Install Python dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 with: packages: xmlschema - name: Setup CCache + if: ${{ inputs.run-build == true && inputs.use-ccache == true }} uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 - if: ${{ inputs.use-ccache == true }} with: api_token: ${{ secrets.GITHUB_TOKEN }} - name: Get Fast DDS Python branch id: get_fastdds_python_branch + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0 with: remote_repository: eProsima/Fast-DDS-python fallback_branch: ${{ env.fastdds-python-branch }} - name: Download Fast DDS Python repo + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/checkout@v0 with: repository: eProsima/Fast-DDS-python @@ -338,6 +380,7 @@ jobs: - name: Colcon build continue-on-error: false + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_build.meta @@ -349,6 +392,7 @@ jobs: workspace: ${{ github.workspace }} - name: Upload python build artifacts + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/upload-artifact@v0 with: name: fastdds_python_build_${{ inputs.label }} @@ -357,7 +401,7 @@ jobs: fastdds_python_test: needs: fastdds_python_build runs-on: ${{ inputs.os-image }} - if: ${{ inputs.security == true && inputs.run-tests == true }} + if: ${{ inputs.security == true }} strategy: fail-fast: false matrix: @@ -365,38 +409,57 @@ jobs: - 'RelWithDebInfo' steps: - name: Free disk space + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/free_disk_space@v0 - name: Download python build artifacts + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/external/download-artifact@v0 with: name: fastdds_python_build_${{ inputs.label }} path: ${{ github.workspace }} - name: Install Fix Python version + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/external/setup-python@v0 with: python-version: '3.11' - name: Get minimum supported version of CMake + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/external/get-cmake@v0 with: cmakeVersion: '3.22.6' - name: Install apt packages + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 with: +<<<<<<< HEAD packages: libasio-dev libtinyxml2-dev libssl-dev swig +======= + packages: libasio-dev libtinyxml2-dev libssl-dev swig4.1 + + - name: Install and configure SWIG test + if: ${{ inputs.run-tests == true }} + run: | + sudo update-alternatives --install /usr/bin/swig swig /usr/bin/swig4.1 100 + sudo update-alternatives --set swig /usr/bin/swig4.1 + swig -version +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) - name: Install colcon + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0 - name: Install Python dependencies + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 with: packages: vcstool xmlschema - name: Fetch Fast DDS CI dependencies + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/vcs_import@v0 with: vcs_repos_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_test.repos @@ -404,13 +467,14 @@ jobs: skip_existing: 'true' - name: Setup CCache + if: ${{ inputs.run-tests == true && inputs.use-ccache == true }} uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 - if: ${{ inputs.use-ccache == true }} with: api_token: ${{ secrets.GITHUB_TOKEN }} - name: Colcon build continue-on-error: false + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_build.meta ${{ github.workspace }}/src/fastrtps/.github/workflows/config/python_test.meta @@ -422,6 +486,7 @@ jobs: - name: Colcon test id: python_test + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/colcon_test@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/python_test.meta @@ -434,8 +499,8 @@ jobs: test_report_artifact: ${{ format('test_report_{0}_{1}_{2}', inputs.label, github.job, join(matrix.*, '_')) }} - name: Fast DDS Python test summary + if: ${{ !cancelled() && inputs.run-tests == true }} uses: eProsima/eProsima-CI/ubuntu/junit_summary@v0 - if: ${{ !cancelled() }} with: junit_reports_dir: "${{ steps.python_test.outputs.ctest_results_path }}" print_summary: 'True' @@ -454,51 +519,71 @@ jobs: - 'RelWithDebInfo' steps: - name: Free disk space + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/free_disk_space@v0 - name: Download python build artifacts + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/download-artifact@v0 with: name: fastdds_python_build_${{ inputs.label }} path: ${{ github.workspace }} - name: Install Fix Python version + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/setup-python@v0 with: python-version: '3.11' - name: Get minimum supported version of CMake + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/get-cmake@v0 with: cmakeVersion: '3.22.6' - name: Install apt packages + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 with: +<<<<<<< HEAD packages: libasio-dev libtinyxml2-dev libssl-dev swig doxygen imagemagick plantuml libenchant-2-2 +======= + packages: libasio-dev libtinyxml2-dev libssl-dev swig4.1 doxygen imagemagick plantuml libenchant-2-2 + + - name: Install and configure SWIG test + if: ${{ inputs.run-build == true }} + run: | + sudo update-alternatives --install /usr/bin/swig swig /usr/bin/swig4.1 100 + sudo update-alternatives --set swig /usr/bin/swig4.1 + swig -version +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) - name: Install colcon + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0 - name: Install Python dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 with: packages: vcstool xmlschema - name: Setup CCache + if: ${{ inputs.run-build == true && inputs.use-ccache == true }} uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 - if: ${{ inputs.use-ccache == true }} with: api_token: ${{ secrets.GITHUB_TOKEN }} - name: Get Fast DDS Docs branch id: get_fastdds_docs_branch + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0 with: remote_repository: eProsima/Fast-DDS-docs fallback_branch: ${{ env.fastdds-docs-branch }} - name: Download Fast DDS documentation repo + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/checkout@v0 with: repository: eProsima/Fast-DDS-docs @@ -514,6 +599,7 @@ jobs: skip_existing: 'true' - name: Install Fast DDS Docs required python packages + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 with: upgrade: false @@ -521,6 +607,7 @@ jobs: - name: Colcon build continue-on-error: false + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_build.meta ${{ github.workspace }}/src/fastrtps/.github/workflows/config/documentation.meta @@ -564,52 +651,61 @@ jobs: - 'RelWithDebInfo' steps: - name: Free disk space + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/free_disk_space@v0 - name: Download build artifacts + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/download-artifact@v0 with: name: fastdds_build_${{ inputs.label }} path: ${{ github.workspace }} - name: Install Fix Python version + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/setup-python@v0 with: python-version: '3.11' - name: Get minimum supported version of CMake + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/get-cmake@v0 with: cmakeVersion: '3.22.6' - name: Install apt packages + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 with: packages: libasio-dev libtinyxml2-dev libssl-dev - name: Install colcon + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0 - name: Install Python dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 with: packages: xmlschema - name: Setup CCache + if: ${{ inputs.run-build == true && inputs.use-ccache == true }} uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 - if: ${{ inputs.use-ccache == true }} with: api_token: ${{ secrets.GITHUB_TOKEN }} # Get Shapes Demo to make sure it keeps compiling - name: Get Shapes Demo branch id: get_shapes_demo_branch + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0 with: remote_repository: eProsima/ShapesDemo fallback_branch: ${{ env.shapes-demo-branch }} - name: Download Shapes Demo repo + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/checkout@v0 with: repository: eProsima/ShapesDemo @@ -620,6 +716,7 @@ jobs: # Do not setup python as it will internally modify the pythonLocation env variable # and we want to use a fix version - name: Install Qt + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/install_qt@v0 with: version: '5.15.2' @@ -628,6 +725,7 @@ jobs: setup-python: 'false' - name: Colcon build + if: ${{ inputs.run-build == true }} continue-on-error: false uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: @@ -751,25 +849,30 @@ jobs: - 'RelWithDebInfo' steps: - name: Free disk space + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/free_disk_space@v0 - name: Download build artifacts + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/download-artifact@v0 with: name: fastdds_build_${{ inputs.label }} path: ${{ github.workspace }} - name: Install Fix Python version + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/setup-python@v0 with: python-version: '3.11' - name: Get minimum supported version of CMake + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/get-cmake@v0 with: cmakeVersion: '3.22.6' - name: Install apt dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_apt_packages@v0 with: packages: libasio-dev libtinyxml2-dev libssl-dev @@ -777,21 +880,24 @@ jobs: upgrade: false - name: Install colcon + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_colcon@v0 - name: Install Python dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/install_python_packages@v0 with: packages: vcstool xmlschema msparser upgrade: false - name: Setup CCache + if: ${{ inputs.run-build == true && inputs.use-ccache == true }} uses: eProsima/eProsima-CI/external/setup-ccache-action@v0 - if: ${{ inputs.use-ccache == true }} with: api_token: ${{ secrets.GITHUB_TOKEN }} - name: Sync osrf/osrf_testing_tools_cpp repository + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/checkout@v0 with: repository: osrf/osrf_testing_tools_cpp @@ -799,6 +905,7 @@ jobs: ref: 1.4.0 - name: OSRF testing tools build + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: colcon_meta_file: '' @@ -809,6 +916,7 @@ jobs: workspace: ${{ github.workspace }} - name: Profilling tests build + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_build.meta @@ -820,12 +928,18 @@ jobs: workspace_dependencies: ${{ github.workspace }}/install - name: Clean workspace - Profiling tests + if: ${{ inputs.run-build == true }} run: | cd ${{ github.workspace }} rm -rf build install log src/osrf_testing_tools_cpp - name: No security colcon build +<<<<<<< HEAD continue-on-error: true +======= + continue-on-error: false + if: ${{ inputs.run-build == true }} +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_build.meta @@ -836,14 +950,22 @@ jobs: workspace: ${{ github.workspace }} - name: Clean workspace - No security +<<<<<<< HEAD if: ${{ always() }} +======= + if: ${{ inputs.run-build == true }} +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) run: | cd ${{ github.workspace }} rm -rf build install log - name: No statistics colcon build +<<<<<<< HEAD continue-on-error: true if: ${{ always() }} +======= + if: ${{ inputs.run-build == true }} +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_build.meta @@ -854,15 +976,23 @@ jobs: workspace: ${{ github.workspace }} - name: Clean workspace - No statistics +<<<<<<< HEAD if: ${{ always() }} +======= + if: ${{ inputs.run-build == true }} +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) run: | cd ${{ github.workspace }} rm -rf build install log # No .metas file, so FASTDDS_ENFORCE_LOG_INFO is set OFF by default. Missed important args are manually included - name: No enforcing log info colcon build +<<<<<<< HEAD continue-on-error: true if: ${{ always() }} +======= + if: ${{ inputs.run-build == true }} +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: colcon_meta_file: '' @@ -873,14 +1003,22 @@ jobs: workspace: ${{ github.workspace }} - name: Clean workspace - No enforce log info +<<<<<<< HEAD if: ${{ always() }} +======= + if: ${{ inputs.run-build == true }} +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) run: | cd ${{ github.workspace }} rm -rf build install log - name: No shared libs colcon build +<<<<<<< HEAD continue-on-error: true if: ${{ always() }} +======= + if: ${{ inputs.run-build == true }} +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: colcon_meta_file: ${{ github.workspace }}/src/fastrtps/.github/workflows/config/fastdds_build.meta @@ -891,12 +1029,69 @@ jobs: workspace: ${{ github.workspace }} - name: Clean workspace - No shared libs + if: ${{ inputs.run-build == true }} run: | cd ${{ github.workspace }} rm -rf build install log +<<<<<<< HEAD +======= + + - name: Null dereference colcon build + if: ${{ inputs.run-build == true }} + uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 + with: + colcon_meta_file: ${{ github.workspace }}/src/fastdds/.github/workflows/config/fastdds_build.meta + colcon_build_args: '${{ inputs.colcon-args }} --packages-up-to fastdds' + cmake_args: '-DEPROSIMA_BUILD_TESTS=OFF -DCMAKE_CXX_FLAGS_INIT="-Wnull-dereference" -DSECURITY=ON -DFASTDDS_STATISTICS=ON ${{ inputs.cmake-args }}' + cmake_args_default: ${{ env.colcon-build-default-cmake-args }} + # Force to build with maximum compiler optimization to catch all 'null-dereference' errors + cmake_build_type: Release + workspace: ${{ github.workspace }} + + - name: Clean workspace - No shared libs + if: ${{ inputs.run-build == true }} + run: | + cd ${{ github.workspace }} + rm -rf build install log + +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) - name: Vanilla colcon build + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 with: cmake_build_type: ${{ matrix.cmake-build-type }} workspace: ${{ github.workspace }} +<<<<<<< HEAD +======= + + - name: Clean workspace - Vanilla build + if: ${{ inputs.run-build == true }} + run: | + cd ${{ github.workspace }} + rm -rf build install log + + - name: No TLS colcon build + if: ${{ inputs.run-build == true }} + uses: eProsima/eProsima-CI/ubuntu/colcon_build@v0 + with: + colcon_meta_file: ${{ github.workspace }}/src/fastdds/.github/workflows/config/fastdds_build.meta + colcon_build_args: ${{ inputs.colcon-args }} + cmake_args: '-DNO_TLS=ON ${{ env.security-cmake-flag }} ${{ inputs.cmake-args }}' + cmake_args_default: ${{ env.colcon-build-default-cmake-args }} + cmake_build_type: ${{ matrix.cmake-build-type }} + workspace: ${{ github.workspace }} + + - name: Clean workspace - No TLS + if: ${{ inputs.run-build == true }} + run: | + cd ${{ github.workspace }} + rm -rf build install log + + - name: GCC latest colcon build + if: ${{ inputs.run-build == true }} + run: | + cd ${{ github.workspace }}/src/fastdds/.github/workflows/docker/ubuntu/alternative_builds + docker build -t fastdds_gcc_latest -f fastdds_gcc_latest.Dockerfile . + docker run --rm -v ${{ github.workspace }}:/root fastdds_gcc_latest +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) diff --git a/.github/workflows/reusable-windows-ci.yml b/.github/workflows/reusable-windows-ci.yml index 763131d6b2a..10b8b4bc5c4 100644 --- a/.github/workflows/reusable-windows-ci.yml +++ b/.github/workflows/reusable-windows-ci.yml @@ -33,6 +33,19 @@ on: required: false type: string default: 'RelWithDebInfo' +<<<<<<< HEAD +======= + run-build: + description: 'Build Fast DDS (CI skipped otherwise)' + required: false + type: boolean + default: true + run-tests: + description: 'Run test suite of Fast DDS' + required: false + type: boolean + default: true +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) defaults: run: @@ -51,6 +64,7 @@ jobs: - 'v143' steps: - name: Sync eProsima/Fast-DDS repository + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/checkout@v0 with: path: src/fastrtps @@ -58,21 +72,25 @@ jobs: ref: ${{ inputs.fastdds_branch }} - name: Install Fix Python version + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/setup-python@v0 with: python-version: '3.11' - name: Get minimum supported version of CMake + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/external/get-cmake@v0 with: cmakeVersion: '3.22.6' - name: Install OpenSSL + if: ${{ inputs.run-build == true }} uses: eProsima/eprosima-CI/windows/install_openssl@v0 with: version: '3.1.1' - name: Update OpenSSL environment variables + if: ${{ inputs.run-build == true }} run: | # Update the environment if (Test-Path -Path $Env:ProgramW6432\OpenSSL) @@ -94,13 +112,104 @@ jobs: } - name: Install colcon + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/windows/install_colcon@v0 - name: Install Python dependencies + if: ${{ inputs.run-build == true }} uses: eProsima/eProsima-CI/windows/install_python_packages@v0 with: packages: vcstool xmlschema psutil +<<<<<<< HEAD +======= + - name: Get Fast CDR branch + id: get_fastcdr_branch + if: ${{ inputs.run-build == true }} + uses: eProsima/eProsima-CI/ubuntu/get_related_branch_from_repo@v0 + with: + remote_repository: eProsima/Fast-CDR + fallback_branch: ${{ inputs.fastcdr_branch }} + skip_base: true + + - name: Download Fast CDR + if: ${{ inputs.run-build == true }} + uses: eProsima/eProsima-CI/external/checkout@v0 + with: + repository: eProsima/Fast-CDR + path: ${{ github.workspace }}/src/fastcdr + ref: ${{ steps.get_fastcdr_branch.outputs.deduced_branch }} + + - name: Fetch Fast DDS dependencies + if: ${{ inputs.run-build == true }} + uses: eProsima/eProsima-CI/windows/vcs_import@v0 + with: + vcs_repos_file: ${{ github.workspace }}\src\fastdds\fastdds.repos + destination_workspace: src + skip_existing: 'true' + + - name: Fetch Fast DDS CI dependencies + if: ${{ inputs.run-build == true }} + uses: eProsima/eProsima-CI/windows/vcs_import@v0 + with: + vcs_repos_file: ${{ github.workspace }}\src\fastdds\.github\workflows\config\fastdds_test.repos + destination_workspace: src + skip_existing: 'true' + + - name: Build + id: build + continue-on-error: false + if: ${{ inputs.run-build == true }} + uses: eProsima/eProsima-CI/windows/colcon_build@v0 + with: + colcon_meta_file: ${{ github.workspace }}\src\fastdds\.github\workflows\config\fastdds_build.meta ${{ github.workspace }}\src\fastdds\.github\workflows\config\fastdds_test.meta + colcon_build_args: ${{ inputs.colcon-args }} + # The following Fast DDS CMake options need to be specified here instead of in the meta files + # because they vary from platform to platform + cmake_args_default: ${{ inputs.cmake-args }} -T ${{ matrix.vs-toolset }} -DTHIRDPARTY_Asio=FORCE -DTHIRDPARTY_TinyXML2=FORCE -DTHIRDPARTY_fastcdr=OFF -DTHIRDPARTY_UPDATE=ON -DCOMPILE_EXAMPLES=ON -DCMAKE_CXX_FLAGS_INIT="/MP /WX" + cmake_build_type: ${{ inputs.cmake-config }} + workspace: ${{ github.workspace }} + + - name: Upload build artifacts + if: ${{ inputs.run-build == true && inputs.run-tests == true }} + uses: eProsima/eProsima-CI/external/upload-artifact@v0 + with: + name: fastdds_build_${{ inputs.label }}_${{ matrix.vs-toolset }} + path: ${{ github.workspace }} + + fastdds_test: + needs: fastdds_build + name: fastdds_test (${{ matrix.cmake_build_type }}, ${{ matrix.test_filter }}), ${{ matrix.vs-toolset }} + runs-on: windows-2022 + strategy: + fail-fast: false + matrix: + vs-toolset: + - 'v142' + - 'v143' + cmake_build_type: + - ${{ inputs.cmake-config }} + test_filter: + - 'blackbox' + - 'unittest-I' + - 'unittest-II' + - 'examples' + filter_expression_blackbox: + - 'BlackboxTests|ParticipantTests|SecureDiscoverServer|SimpleCommunication|system.' + filter_expression_examples: + - 'example_tests' + filter_expression_unittests_I: + - 'DDSSQLFilterValue' + + steps: + - name: Download build artifacts + if: ${{ inputs.run-tests == true }} + uses: eProsima/eProsima-CI/external/download-artifact@v0 + with: + name: fastdds_build_${{ inputs.label }}_${{ matrix.vs-toolset }} + path: ${{ github.workspace }} + +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) - name: Update known hosts file for DNS resolver testing if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-test') }} run: | @@ -157,9 +266,15 @@ jobs: destination_workspace: src skip_existing: 'true' +<<<<<<< HEAD - name: Build id: build +======= + #Build Windows examples testing docker image + - name: Build with example testing +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) continue-on-error: false + if: ${{ inputs.run-tests == true && matrix.test_filter == 'examples' }} uses: eProsima/eProsima-CI/windows/colcon_build@v0 with: colcon_meta_file: ${{ github.workspace }}\src\fastrtps\.github\workflows\config\fastdds_build.meta ${{ github.workspace }}\src\fastrtps\.github\workflows\config\fastdds_test.meta @@ -171,8 +286,12 @@ jobs: workspace: ${{ github.workspace }} - name: Test +<<<<<<< HEAD if: ${{ !contains(github.event.pull_request.labels.*.name, 'no-test') }} +======= +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) id: test + if: ${{ inputs.run-tests == true }} uses: eProsima/eProsima-CI/windows/colcon_test@v0 with: colcon_meta_file: ${{ github.workspace }}\src\fastrtps\.github\workflows\config\fastdds_test.meta diff --git a/.github/workflows/sanitizers-ci.yml b/.github/workflows/sanitizers-ci.yml index 85f4ac59246..fbacd80d42a 100644 --- a/.github/workflows/sanitizers-ci.yml +++ b/.github/workflows/sanitizers-ci.yml @@ -58,17 +58,34 @@ concurrency: jobs: sanitizers-ci: - if: ${{ ( - !contains(github.event.pull_request.labels.*.name, 'skip-ci') && - !contains(github.event.pull_request.labels.*.name, 'no-test') && - !contains(github.event.pull_request.labels.*.name, 'conflicts') - ) }} + if: ${{ !contains(github.event.pull_request.labels.*.name, 'conflicts') }} uses: ./.github/workflows/reusable-sanitizers-ci.yml with: label: ${{ inputs.label || 'fastdds-sanitizers-ci' }} +<<<<<<< HEAD run_asan_fastdds: ${{ ((inputs.run_asan_fastdds == true) && true) || github.event_name == 'pull_request' }} run_asan_discovery_server: ${{ ((inputs.run_asan_discovery_server == true) && true) || github.event_name == 'pull_request' }} run_tsan_fastdds: ${{ ((inputs.run_tsan_fastdds == true) && true) || github.event_name == 'pull_request' }} +======= + run_asan_fastdds: ${{ ((inputs.run_asan_fastdds == true) && true) || + ( + (github.event_name == 'pull_request') && + !contains(github.event.pull_request.labels.*.name, 'skip-ci') && + !contains(github.event.pull_request.labels.*.name, 'no-test') + ) }} + run_tsan_fastdds: ${{ ((inputs.run_tsan_fastdds == true) && true) || + ( + (github.event_name == 'pull_request') && + !contains(github.event.pull_request.labels.*.name, 'skip-ci') && + !contains(github.event.pull_request.labels.*.name, 'no-test') + ) }} + run_ubsan_fastdds: ${{ ((inputs.run_ubsan_fastdds == true) && true) || + ( + (github.event_name == 'pull_request') && + !contains(github.event.pull_request.labels.*.name, 'skip-ci') && + !contains(github.event.pull_request.labels.*.name, 'no-test') + ) }} +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442)) colcon_build_args: ${{ inputs.colcon_build_args || '' }} colcon_test_args: ${{ inputs.colcon_test_args || '' }} cmake_args: ${{ inputs.cmake_args || '' }} diff --git a/.github/workflows/ubuntu-ci.yml b/.github/workflows/ubuntu-ci.yml index a55e36f64bc..5f04dbc3792 100644 --- a/.github/workflows/ubuntu-ci.yml +++ b/.github/workflows/ubuntu-ci.yml @@ -66,7 +66,16 @@ jobs: ctest-args: ${{ inputs.ctest-args || '-LE xfail' }} fastdds-branch: ${{ inputs.fastdds_branch || github.ref || '2.14.x' }} security: ${{ ((inputs.security == true) && true) || github.event_name == 'pull_request' }} - run-build: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'skip-ci') }} - run-tests: ${{ ((inputs.run-tests == true) && true) || (github.event_name == 'pull_request' && !contains(github.event.pull_request.labels.*.name, 'no-test')) }} + run-build: ${{ !(github.event_name == 'pull_request') || + !contains(github.event.pull_request.labels.*.name, 'skip-ci') }} + run-tests: ${{ (inputs.run-tests == true) || + ( + (github.event_name == 'pull_request') && + (!contains(github.event.pull_request.labels.*.name, 'no-test')) && + (!contains(github.event.pull_request.labels.*.name, 'skip-ci')) + ) }} use-ccache: ${{ ((inputs.use-ccache == true) && true) || false }} - add-label: ${{ (github.event_name == 'pull_request') && (github.event.pull_request.head.repo.full_name == github.repository) && true || false }} + add-label: ${{ (github.event_name == 'pull_request') && + (github.event.pull_request.head.repo.full_name == github.repository) && + (!contains(github.event.pull_request.labels.*.name, 'skip-ci')) && + true || false }} diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index 4c4e4ef13a2..c06c6a0c88f 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -38,14 +38,23 @@ concurrency: jobs: windows-ci: - if: ${{ ( - !contains(github.event.pull_request.labels.*.name, 'skip-ci') && - !contains(github.event.pull_request.labels.*.name, 'conflicts') - ) }} + if: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'conflicts') }} uses: ./.github/workflows/reusable-windows-ci.yml with: label: ${{ inputs.label || 'windows-ci' }} colcon-args: ${{ inputs.colcon-args }} cmake-args: '-DSECURITY=ON ${{ inputs.cmake-args }}' ctest-args: ${{ inputs.ctest-args }} +<<<<<<< HEAD fastdds_branch: ${{ inputs.fastdds_branch || github.ref || '2.14.x' }} +======= + fastdds_branch: ${{ inputs.fastdds_branch || github.ref || 'master' }} + run-build: ${{ !(github.event_name == 'pull_request') || + !contains(github.event.pull_request.labels.*.name, 'skip-ci') }} + run-tests: ${{ (inputs.run-tests == true) || + ( + (github.event_name == 'pull_request') && + (!contains(github.event.pull_request.labels.*.name, 'no-test')) && + (!contains(github.event.pull_request.labels.*.name, 'skip-ci')) + ) }} +>>>>>>> 2ff2b6031 (Make `skip-ci` label report required statuses as pass (#6442))