diff --git a/.github/workflows/PRAS.jl.yml b/.github/workflows/PRAS.jl.yml new file mode 100644 index 00000000..a5f6a25e --- /dev/null +++ b/.github/workflows/PRAS.jl.yml @@ -0,0 +1,74 @@ +name: PRAS.jl tests +# Run on master, tags, or any pull request +on: + schedule: + - cron: '0 2 * * *' # Daily at 2 AM UTC (8 PM CST) + push: + branches: [main] + tags: ["*"] + pull_request: +jobs: + test: + name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + version: + - "lts" # Latest LTS release, min supported + - "1" # Latest release + os: + - ubuntu-latest + - macOS-latest + - windows-latest + arch: + - x64 + - aarch64 + exclude: + - os: windows-latest + arch: aarch64 + - os: ubuntu-latest + arch: aarch64 + steps: + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - uses: actions/cache@v4 + env: + cache-name: cache-artifacts + with: + path: ~/.julia/artifacts + key: ${{ runner.os }}-${{ matrix.arch }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.arch }}-test-${{ env.cache-name }}- + ${{ runner.os }}-${{ matrix.arch }}-test- + ${{ runner.os }}-${{ matrix.arch }}- + ${{ runner.os }}- + - run: julia --project=PRAS -e 'import Pkg; + Pkg.Registry.add("General"); + Pkg.Registry.add(Pkg.RegistrySpec(url="https://github.com/NREL/JuliaRegistry.git")); + Pkg.develop([ + (path="PRASCore",), + (path="PRASFiles",), + (path="PRASCapacityCredits",) + ])' + shell: bash + - uses: julia-actions/julia-buildpkg@latest + with: + project: PRAS + - run: | + git config --global user.name Tester + git config --global user.email te@st.er + - uses: julia-actions/julia-runtest@latest + with: + project: PRAS + env: + JULIA_NUM_THREADS: 2 + - uses: julia-actions/julia-processcoverage@v1 + with: + directories: PRAS/src + - uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/PRASCapacityCredits.jl.yml b/.github/workflows/PRASCapacityCredits.jl.yml new file mode 100644 index 00000000..da695953 --- /dev/null +++ b/.github/workflows/PRASCapacityCredits.jl.yml @@ -0,0 +1,70 @@ +name: PRASCapacityCredits.jl tests +# Run on master, tags, or any pull request +on: + schedule: + - cron: '0 2 * * *' # Daily at 2 AM UTC (8 PM CST) + push: + branches: [main] + tags: ["*"] + pull_request: +jobs: + test: + name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + version: + - "lts" # Latest LTS release, min supported + - "1" # Latest release + os: + - ubuntu-latest + - macOS-latest + - windows-latest + arch: + - x64 + - aarch64 + exclude: + - os: windows-latest + arch: aarch64 + - os: ubuntu-latest + arch: aarch64 + steps: + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - uses: actions/cache@v4 + env: + cache-name: cache-artifacts + with: + path: ~/.julia/artifacts + key: ${{ runner.os }}-${{ matrix.arch }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.arch }}-test-${{ env.cache-name }}- + ${{ runner.os }}-${{ matrix.arch }}-test- + ${{ runner.os }}-${{ matrix.arch }}- + ${{ runner.os }}- + - run: julia --project=PRASCapacityCredits -e 'import Pkg; + Pkg.Registry.add("General"); + Pkg.Registry.add(Pkg.RegistrySpec(url="https://github.com/NREL/JuliaRegistry.git")); + Pkg.develop(path="PRASCore")' + shell: bash + - uses: julia-actions/julia-buildpkg@latest + with: + project: PRASCapacityCredits + - run: | + git config --global user.name Tester + git config --global user.email te@st.er + - uses: julia-actions/julia-runtest@latest + with: + project: PRASCapacityCredits + env: + JULIA_NUM_THREADS: 2 + - uses: julia-actions/julia-processcoverage@v1 + with: + directories: PRASCapacityCredits/src + - uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/CI.yml b/.github/workflows/PRASCore.jl.yml similarity index 87% rename from .github/workflows/CI.yml rename to .github/workflows/PRASCore.jl.yml index bddc6183..fb28ee24 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/PRASCore.jl.yml @@ -1,10 +1,10 @@ -name: CI +name: PRASCore.jl tests # Run on master, tags, or any pull request on: schedule: - cron: '0 2 * * *' # Daily at 2 AM UTC (8 PM CST) push: - branches: [master] + branches: [main] tags: ["*"] pull_request: jobs: @@ -46,18 +46,21 @@ jobs: ${{ runner.os }}-${{ matrix.arch }}-test- ${{ runner.os }}-${{ matrix.arch }}- ${{ runner.os }}- - - run: julia -e 'import Pkg; - Pkg.Registry.add("General"); - Pkg.Registry.add(Pkg.RegistrySpec(url="https://github.com/NREL/JuliaRegistry.git"))' - shell: bash - uses: julia-actions/julia-buildpkg@latest + with: + project: PRASCore + localregistry: https://github.com/NREL/JuliaRegistry.git - run: | git config --global user.name Tester git config --global user.email te@st.er - uses: julia-actions/julia-runtest@latest + with: + project: PRASCore env: JULIA_NUM_THREADS: 2 - uses: julia-actions/julia-processcoverage@v1 + with: + directories: PRASCore/src - uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} diff --git a/.github/workflows/PRASFiles.jl.yml b/.github/workflows/PRASFiles.jl.yml new file mode 100644 index 00000000..da341100 --- /dev/null +++ b/.github/workflows/PRASFiles.jl.yml @@ -0,0 +1,70 @@ +name: PRASFiles.jl tests +# Run on master, tags, or any pull request +on: + schedule: + - cron: '0 2 * * *' # Daily at 2 AM UTC (8 PM CST) + push: + branches: [main] + tags: ["*"] + pull_request: +jobs: + test: + name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + version: + - "lts" # Latest LTS release, min supported + - "1" # Latest release + os: + - ubuntu-latest + - macOS-latest + - windows-latest + arch: + - x64 + - aarch64 + exclude: + - os: windows-latest + arch: aarch64 + - os: ubuntu-latest + arch: aarch64 + steps: + - uses: actions/checkout@v4 + - uses: julia-actions/setup-julia@v2 + with: + version: ${{ matrix.version }} + arch: ${{ matrix.arch }} + - uses: actions/cache@v4 + env: + cache-name: cache-artifacts + with: + path: ~/.julia/artifacts + key: ${{ runner.os }}-${{ matrix.arch }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.arch }}-test-${{ env.cache-name }}- + ${{ runner.os }}-${{ matrix.arch }}-test- + ${{ runner.os }}-${{ matrix.arch }}- + ${{ runner.os }}- + - run: julia --project=PRASFiles -e 'import Pkg; + Pkg.Registry.add("General"); + Pkg.Registry.add(Pkg.RegistrySpec(url="https://github.com/NREL/JuliaRegistry.git")); + Pkg.develop(path="PRASCore")' + shell: bash + - uses: julia-actions/julia-buildpkg@latest + with: + project: PRASFiles + - run: | + git config --global user.name Tester + git config --global user.email te@st.er + - uses: julia-actions/julia-runtest@latest + with: + project: PRASFiles + env: + JULIA_NUM_THREADS: 2 + - uses: julia-actions/julia-processcoverage@v1 + with: + directories: PRASFiles/src + - uses: codecov/codecov-action@v4 + with: + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/README.md b/README.md index 844a16d7..94826901 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ # Probabilistic Resource Adequacy Suite -[![Build Status](https://github.com/NREL/PRAS/actions/workflows/CI.yml/badge.svg?branch=master)](https://github.com/NREL/PRAS/actions/workflows/CI.yml) +[![PRAS.jl Tests](https://github.com/NREL/PRAS/actions/workflows/PRAS.jl.yml/badge.svg?branch=main)](https://github.com/NREL/PRAS/actions/workflows/PRAS.jl.yml) +[![PRASCore.jl Tests](https://github.com/NREL/PRAS/actions/workflows/PRASCore.jl.yml/badge.svg?branch=main)](https://github.com/NREL/PRAS/actions/workflows/PRASCore.jl.yml) +[![PRASFiles.jl Tests](https://github.com/NREL/PRAS/actions/workflows/PRASFiles.jl.yml/badge.svg?branch=main)](https://github.com/NREL/PRAS/actions/workflows/PRASFiles.jl.yml) +[![PRASCapacityCredits.jl Tests](https://github.com/NREL/PRAS/actions/workflows/PRASCapacityCredits.jl.yml/badge.svg?branch=main)](https://github.com/NREL/PRAS/actions/workflows/PRASCapacityCredits.jl.yml) + [![codecov](https://codecov.io/gh/NREL/PRAS/branch/master/graph/badge.svg?token=WiP3quRaIA)](https://codecov.io/gh/NREL/PRAS) [![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://nrel.github.io/PRAS) [![DOI](https://img.shields.io/badge/DOI-10.11578/dc.20190814.1-blue.svg)](https://www.osti.gov/biblio/1557438)