From 395b9175b7422d699fa93643973295c106cdf147 Mon Sep 17 00:00:00 2001 From: Dan Fandrich Date: Fri, 10 Mar 2023 16:58:21 -0800 Subject: [PATCH] CI: don't run CI jobs if only another CI was changed Also skip builds on non-Windows platforms when only Windows build files have changed. This should reduce the number of useless builds and the associated waiting time and chance of spurious failures, freeing resources for new PRs. Closes #10742 --- .azure-pipelines.yml | 17 +++++++++---- .cirrus.yml | 35 ++++++++++++++++++++++++++- .github/workflows/codeql-analysis.yml | 16 ++++++++++++ .github/workflows/fuzz.yml | 19 +++++++++++++++ .github/workflows/linux.yml | 16 ++++++++++++ .github/workflows/macos.yml | 16 ++++++++++++ .github/workflows/ngtcp2-gnutls.yml | 16 ++++++++++++ .github/workflows/ngtcp2-quictls.yml | 16 ++++++++++++ .github/workflows/ngtcp2-wolfssl.yml | 16 ++++++++++++ .github/workflows/pytest.yml | 16 ++++++++++++ .github/workflows/torture.yml | 16 ++++++++++++ .github/workflows/wolfssl.yml | 16 ++++++++++++ appveyor.yml | 3 +++ 13 files changed, 212 insertions(+), 6 deletions(-) diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 53f9dc4ef4..54b40a3895 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -1,5 +1,4 @@ -#*************************************************************************** -# _ _ ____ _ +#*************************************************************************** # _ _ ____ _ # Project ___| | | | _ \| | # / __| | | | |_) | | # | (__| |_| | _ <| |___ @@ -21,9 +20,9 @@ # SPDX-License-Identifier: curl # ########################################################################### -# Starter pipeline -# Start with a minimal pipeline that you can customize to build and deploy your code. -# Add steps that build, run tests, deploy, and more: +# https://dev.azure.com/daniel0244/curl/_build?view=runs +# +# Azure Pipelines configuration: # https://aka.ms/yaml trigger: @@ -31,6 +30,14 @@ trigger: include: - 'master' - '*/ci' + paths: + exclude: + - '.circleci/*' + - '.cirrus.yml' + - '.github/*' + - 'appveyor.yml' + - 'packages/*' + - 'plan9/*' pr: branches: diff --git a/.cirrus.yml b/.cirrus.yml index 309491a63e..574f85cb79 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -21,10 +21,23 @@ # SPDX-License-Identifier: curl # ########################################################################### -# Cirrus CI configuration # https://cirrus-ci.com/github/curl/curl +# +# Cirrus CI configuration: +# https://cirrus-ci.org/guide/writing-tasks/ freebsd_task: + skip: "changesIncludeOnly( + '.azure-pipelines.yml', + '.circleci/**', + '.github/**', + 'appveyor.yml', + 'packages/**', + 'plan9/**', + 'projects/**', + 'winbuild/**' + )" + name: FreeBSD matrix: @@ -77,6 +90,15 @@ freebsd_task: - make V=1 install windows_task: + skip: "changesIncludeOnly( + '.azure-pipelines.yml', + '.circleci/**', + '.github/**', + 'appveyor.yml', + 'packages/**', + 'plan9/**' + )" + name: Windows timeout_in: 120m windows_container: @@ -135,6 +157,17 @@ windows_task: %container_cmd% -l -c "cd $(echo '%cd%') && %make_cmd% TFLAGS='!IDN !SCP ~612 ~1056 %tests%' test-ci" macos_task: + skip: "changesIncludeOnly( + '.azure-pipelines.yml', + '.circleci/**', + '.github/**', + 'appveyor.yml', + 'packages/**', + 'plan9/**', + 'projects/**', + 'winbuild/**' + )" + name: macOS arm64 macos_instance: image: ghcr.io/cirruslabs/macos-ventura-xcode:latest diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 83cab5a7a2..c7f6107d5d 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -11,11 +11,27 @@ on: - '*/ci' paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' pull_request: branches: - master paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' schedule: - cron: '0 0 * * 4' diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index 7eda654c7a..520be76359 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -9,9 +9,28 @@ on: branches: - master - '*/ci' + paths-ignore: + - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' pull_request: branches: - master + paths-ignore: + - '**/*.md' + - '.azure-pipelines.yml' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index deba3dd391..13f9ae749d 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -11,11 +11,27 @@ on: - '*/ci' paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' pull_request: branches: - master paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index e50011e542..6733c89324 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -11,11 +11,27 @@ on: - '*/ci' paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' pull_request: branches: - master paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} diff --git a/.github/workflows/ngtcp2-gnutls.yml b/.github/workflows/ngtcp2-gnutls.yml index 56c0776f1d..17f2471127 100644 --- a/.github/workflows/ngtcp2-gnutls.yml +++ b/.github/workflows/ngtcp2-gnutls.yml @@ -11,11 +11,27 @@ on: - '*/ci' paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' pull_request: branches: - master paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' concurrency: # Hardcoded workflow filename as workflow name above is just Linux again diff --git a/.github/workflows/ngtcp2-quictls.yml b/.github/workflows/ngtcp2-quictls.yml index 5ceefa5896..913a100b7b 100644 --- a/.github/workflows/ngtcp2-quictls.yml +++ b/.github/workflows/ngtcp2-quictls.yml @@ -11,11 +11,27 @@ on: - '*/ci' paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' pull_request: branches: - master paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' concurrency: # Hardcoded workflow filename as workflow name above is just Linux again diff --git a/.github/workflows/ngtcp2-wolfssl.yml b/.github/workflows/ngtcp2-wolfssl.yml index ceb4c12a67..dab8ada026 100644 --- a/.github/workflows/ngtcp2-wolfssl.yml +++ b/.github/workflows/ngtcp2-wolfssl.yml @@ -11,11 +11,27 @@ on: - '*/ci' paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' pull_request: branches: - master paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' concurrency: # Hardcoded workflow filename as workflow name above is just Linux again diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml index 2fc33e89c6..28bee20801 100644 --- a/.github/workflows/pytest.yml +++ b/.github/workflows/pytest.yml @@ -11,11 +11,27 @@ on: - '*/ci' paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' pull_request: branches: - master paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' concurrency: # Hardcoded workflow filename as workflow name above is just Linux again diff --git a/.github/workflows/torture.yml b/.github/workflows/torture.yml index c3ed352060..612ad6a4af 100644 --- a/.github/workflows/torture.yml +++ b/.github/workflows/torture.yml @@ -11,11 +11,27 @@ on: - '*/ci' paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' pull_request: branches: - master paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' concurrency: # Hardcoded workflow filename as workflow name above is just Linux again diff --git a/.github/workflows/wolfssl.yml b/.github/workflows/wolfssl.yml index 08c15db49d..86d859e6a6 100644 --- a/.github/workflows/wolfssl.yml +++ b/.github/workflows/wolfssl.yml @@ -11,11 +11,27 @@ on: - '*/ci' paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' pull_request: branches: - master paths-ignore: - '**/*.md' + - '.azure-pipelines.yml' + - '.circleci/**' + - '.cirrus.yml' + - 'appveyor.yml' + - 'packages/**' + - 'plan9/**' + - 'projects/**' + - 'winbuild/**' concurrency: # Hardcoded workflow filename as workflow name above is just Linux again diff --git a/appveyor.yml b/appveyor.yml index 845839f985..ca8efcb9fd 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -21,6 +21,9 @@ # SPDX-License-Identifier: curl # ########################################################################### +# https://ci.appveyor.com/project/curlorg/curl/history +# Appveyor configuration +# https://www.appveyor.com/docs/appveyor-yml/ version: 7.50.0.{build}