From 2768ae8e9ce208b183f2acad24b5c3583eec7581 Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Tue, 17 Sep 2024 13:15:41 -0400 Subject: [PATCH] ci(github-actions): add workflows for subpackages --- .../workflows/CI_BracketingNonlinearSolve.yml | 70 ++++++++++++++++++ .github/workflows/CI_NonlinearSolve.yml | 73 +++++++++++++++++++ .../{CI.yml => CI_NonlinearSolveBase.yml} | 40 +++++----- .github/workflows/CompatHelper.yml | 8 +- 4 files changed, 168 insertions(+), 23 deletions(-) create mode 100644 .github/workflows/CI_BracketingNonlinearSolve.yml create mode 100644 .github/workflows/CI_NonlinearSolve.yml rename .github/workflows/{CI.yml => CI_NonlinearSolveBase.yml} (63%) diff --git a/.github/workflows/CI_BracketingNonlinearSolve.yml b/.github/workflows/CI_BracketingNonlinearSolve.yml new file mode 100644 index 000000000..d4479a2bb --- /dev/null +++ b/.github/workflows/CI_BracketingNonlinearSolve.yml @@ -0,0 +1,70 @@ +name: CI (BracketingNonlinearSolve) + +on: + pull_request: + branches: + - master + paths: + - "lib/BracketingNonlinearSolve/src/**" + - "lib/BracketingNonlinearSolve/ext/**" + - "lib/BracketingNonlinearSolve/test/**" + - "lib/BracketingNonlinearSolve/Project.toml" + - ".github/workflows/CI_BracketingNonlinearSolve.yml" + push: + branches: + - master + +concurrency: + # Skip intermediate builds: always. + # Cancel intermediate builds: only if it is a pull request build. + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + version: + - "min" + - "1" + os: + - ubuntu-latest + - macos-latest + - windows-latest + steps: + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.version }} + - uses: actions/cache@v4 + env: + cache-name: cache-artifacts + with: + path: ~/.julia/artifacts + key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} + restore-keys: | + ${{ runner.os }}-test-${{ env.cache-name }}- + ${{ runner.os }}-test- + ${{ runner.os }}- + - name: "Install Dependencies and Run Tests" + run: | + import Pkg + Pkg.Registry.update() + # Install packages present in subdirectories + for path in ("lib/NonlinearSolveBase",) + Pkg.develop(; path) + end + Pkg.instantiate() + Pkg.test(; coverage=true) + shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/BracketingNonlinearSolve {0} + - uses: julia-actions/julia-processcoverage@v1 + with: + directories: lib/BracketingNonlinearSolve/src,lib/BracketingNonlinearSolve/ext + - uses: codecov/codecov-action@v4 + with: + file: lcov.info + token: ${{ secrets.CODECOV_TOKEN }} + verbose: true + fail_ci_if_error: true diff --git a/.github/workflows/CI_NonlinearSolve.yml b/.github/workflows/CI_NonlinearSolve.yml new file mode 100644 index 000000000..f8f1d9714 --- /dev/null +++ b/.github/workflows/CI_NonlinearSolve.yml @@ -0,0 +1,73 @@ +name: CI (NonlinearSolve) + +on: + pull_request: + branches: + - master + paths: + - "src/**" + - "ext/**" + - "test/**" + - "Project.toml" + - ".github/workflows/CI_NonlinearSolve.yml" + push: + branches: + - master + +concurrency: + # Skip intermediate builds: always. + # Cancel intermediate builds: only if it is a pull request build. + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} + +jobs: + test: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + group: + - Core + - Downstream + - Misc + - Wrappers + version: + - "min" + - "1" + os: + - ubuntu-latest + - macos-latest + - windows-latest + steps: + - name: "Stub" + run: echo "Remember to uncomment the following steps!!!!!!!!" + # - uses: actions/checkout@v4 + # - uses: julia-actions/setup-julia@v2 + # with: + # version: ${{ matrix.version }} + # - uses: actions/cache@v4 + # env: + # cache-name: cache-artifacts + # with: + # path: ~/.julia/artifacts + # key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} + # restore-keys: | + # ${{ runner.os }}-test-${{ env.cache-name }}- + # ${{ runner.os }}-test- + # ${{ runner.os }}- + # - uses: julia-actions/julia-buildpkg@v1 + # - uses: julia-actions/julia-runtest@v1 + # env: + # GROUP: ${{ matrix.group }} + # JULIA_NUM_THREADS: 11 + # RETESTITEMS_NWORKERS: 4 + # RETESTITEMS_NWORKER_THREADS: 2 + # - uses: julia-actions/julia-processcoverage@v1 + # with: + # directories: src,ext + # - uses: codecov/codecov-action@v4 + # with: + # file: lcov.info + # token: ${{ secrets.CODECOV_TOKEN }} + # verbose: true + # fail_ci_if_error: true diff --git a/.github/workflows/CI.yml b/.github/workflows/CI_NonlinearSolveBase.yml similarity index 63% rename from .github/workflows/CI.yml rename to .github/workflows/CI_NonlinearSolveBase.yml index 81d21b524..f9acb9843 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI_NonlinearSolveBase.yml @@ -1,15 +1,15 @@ -name: CI +name: CI (NonlinearSolveBase) on: pull_request: branches: - master paths: - - "src/**" - - "ext/**" - - "test/**" - - "Project.toml" - - ".github/workflows/CI.yml" + - "lib/NonlinearSolveBase/src/**" + - "lib/NonlinearSolveBase/ext/**" + - "lib/NonlinearSolveBase/test/**" + - "lib/NonlinearSolveBase/Project.toml" + - ".github/workflows/CI_NonlinearSolveBase.yml" push: branches: - master @@ -26,17 +26,13 @@ jobs: strategy: fail-fast: false matrix: - group: - - Core - - Downstream - - Misc - - Wrappers version: - - "1" + - "min" + # - "1" os: - ubuntu-latest - - macos-latest - - windows-latest + # - macos-latest + # - windows-latest steps: - uses: actions/checkout@v4 - uses: julia-actions/setup-julia@v2 @@ -52,16 +48,16 @@ jobs: ${{ runner.os }}-test-${{ env.cache-name }}- ${{ runner.os }}-test- ${{ runner.os }}- - - uses: julia-actions/julia-buildpkg@v1 - - uses: julia-actions/julia-runtest@v1 - env: - GROUP: ${{ matrix.group }} - JULIA_NUM_THREADS: 11 - RETESTITEMS_NWORKERS: 4 - RETESTITEMS_NWORKER_THREADS: 2 + - name: "Install Dependencies and Run Tests" + run: | + import Pkg + Pkg.Registry.update() + Pkg.instantiate() + Pkg.test(; coverage=true) + shell: julia --color=yes --code-coverage=user --depwarn=yes --project=lib/NonlinearSolveBase {0} - uses: julia-actions/julia-processcoverage@v1 with: - directories: src,ext + directories: lib/NonlinearSolveBase/src,lib/NonlinearSolveBase/ext - uses: codecov/codecov-action@v4 with: file: lcov.info diff --git a/.github/workflows/CompatHelper.yml b/.github/workflows/CompatHelper.yml index 73494545f..805a5fe4c 100644 --- a/.github/workflows/CompatHelper.yml +++ b/.github/workflows/CompatHelper.yml @@ -23,4 +23,10 @@ jobs: - name: CompatHelper.main() env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: julia -e 'using CompatHelper; CompatHelper.main(;subdirs=["", "docs"])' + run: | + import CompatHelper + subdirs = ["", "docs"] + append!(subdirs, joinpath.(("lib",), filter(p -> isdir(joinpath("lib", p)), readdir("lib")))) + CompatHelper.main(; subdirs) + shell: julia --color=yes {0} + working-directory: "./"