-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #5 from nuttycom/github_ci
Add CI testing for ghc versions 7.10.3 through 8.10.1
- Loading branch information
Showing
4 changed files
with
222 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,172 @@ | ||
{ | ||
"jobs": { | ||
"build": { | ||
"env": { | ||
"CONFIG": "--enable-tests --enable-benchmarks ${{ matrix.bounds }}" | ||
}, | ||
"runs-on": "${{ matrix.os }}", | ||
"steps": [ | ||
{ | ||
"uses": "actions/checkout@v4" | ||
}, | ||
{ | ||
"id": "setup-haskell-cabal", | ||
"uses": "haskell-actions/setup@v2", | ||
"with": { | ||
"cabal-version": "3.10.2.1", | ||
"ghc-version": "${{ matrix.ghc }}" | ||
} | ||
}, | ||
{ | ||
"run": "cabal v2-freeze $CONFIG" | ||
}, | ||
{ | ||
"uses": "actions/cache@v4", | ||
"with": { | ||
"key": "${{ runner.os }}-${{ matrix.ghc }}-${{ hashFiles('cabal.project.freeze') }}", | ||
"path": "${{ steps.setup-haskell-cabal.outputs.cabal-store }}\ndist-newstyle\n" | ||
} | ||
}, | ||
{ | ||
"run": "cabal v2-build all $CONFIG" | ||
}, | ||
{ | ||
"run": "cabal v2-test all $CONFIG" | ||
}, | ||
{ | ||
"run": "mv dist-newstyle/cache/plan.json plan-${{ runner.os }}-${{ matrix.ghc }}${{ matrix.bounds }}.json" | ||
}, | ||
{ | ||
"name": "Upload build plan as artifact", | ||
"uses": "actions/upload-artifact@v4", | ||
"with": { | ||
"name": "plan-${{ runner.os }}-${{ matrix.ghc }}${{ matrix.bounds }}", | ||
"path": "plan-${{ runner.os }}-${{ matrix.ghc }}${{ matrix.bounds }}.json" | ||
} | ||
} | ||
], | ||
"strategy": { | ||
"fail-fast": false, | ||
"matrix": { | ||
"bounds": [ | ||
"--prefer-oldest", | ||
"" | ||
], | ||
"exclude": [ | ||
{ | ||
"ghc": "7.10.3", | ||
"os": "ubuntu-22.04" | ||
}, | ||
], | ||
"ghc": [ | ||
"7.10.3", | ||
"8.0.2", | ||
"8.2.2", | ||
"8.4.1", | ||
"8.6.1", | ||
"8.8.1", | ||
"8.10.1", | ||
], | ||
"os": [ | ||
"macos-13", | ||
"ubuntu-22.04", | ||
"windows-2022" | ||
] | ||
} | ||
} | ||
}, | ||
"check-bounds": { | ||
"if": "always()", | ||
"needs": [ | ||
"build" | ||
], | ||
"runs-on": "ubuntu-22.04", | ||
"steps": [ | ||
{ | ||
"uses": "actions/checkout@v4" | ||
}, | ||
{ | ||
"id": "setup-haskell-cabal", | ||
"uses": "haskell-actions/setup@v2", | ||
"with": { | ||
"cabal-version": "3.10.2.1", | ||
"ghc-version": "9.6.3" | ||
} | ||
}, | ||
{ | ||
"run": "## TODO: Remove the manual cloning once cabal-plan-bounds >0.1.5.1\n## is released. Currently, it’s needed because of\n## nomeata/cabal-plan-bounds#19.\ngit clone https://github.com/nomeata/cabal-plan-bounds\ncd cabal-plan-bounds\ncabal install cabal-plan-bounds\n" | ||
}, | ||
{ | ||
"name": "download Cabal plans", | ||
"uses": "actions/download-artifact@v4", | ||
"with": { | ||
"merge-multiple": true, | ||
"path": "plans", | ||
"pattern": "plan-*" | ||
} | ||
}, | ||
{ | ||
"name": "Cabal plans considered in generated bounds", | ||
"run": "find plans/" | ||
}, | ||
{ | ||
"name": "check if bounds have changed", | ||
"run": "diffs=\"$(find . -name '*.cabal' -exec \\\n cabal-plan-bounds \\\n --dry-run \\\n \\\n plans/*.json \\\n --cabal {} \\;)\"\nif [[ -n \"$diffs\" ]]; then\n echo \"$diffs\"\n exit 1\nfi\n" | ||
} | ||
] | ||
}, | ||
"check-licenses": { | ||
"if": "always()", | ||
"needs": [ | ||
"build" | ||
], | ||
"runs-on": "ubuntu-22.04", | ||
"steps": [ | ||
{ | ||
"uses": "actions/checkout@v4" | ||
}, | ||
{ | ||
"id": "setup-haskell-cabal", | ||
"uses": "haskell-actions/setup@v2", | ||
"with": { | ||
"cabal-version": "3.10.2.1", | ||
"ghc-version": "8.10.1" | ||
} | ||
}, | ||
{ | ||
"run": "cabal install cabal-plan -flicense-report" | ||
}, | ||
{ | ||
"name": "download Cabal plans", | ||
"uses": "actions/download-artifact@v4", | ||
"with": { | ||
"merge-multiple": true, | ||
"path": "plans", | ||
"pattern": "plan-*" | ||
} | ||
}, | ||
{ | ||
"run": "mkdir -p dist-newstyle/cache\nmv plans/plan-${{ runner.os }}-8.10.1.json dist-newstyle/cache/plan.json\n" | ||
}, | ||
{ | ||
"name": "check if licenses have changed", | ||
"run": "{\n echo \"**NB**: This captures the licenses associated with a particular set of dependency versions. If your own build solves differently, it’s possible that the licenses may have changed, or even that the set of dependencies itself is different. Please make sure you run [\\`cabal-plan license-report\\`](https://hackage.haskell.org/package/cabal-plan) on your own components rather than assuming this is authoritative.\"\n echo\n cabal-plan license-report true-name:lib:true-name\n} >\"docs/license-report.md\"\n\ngit diff --exit-code docs/license-report.md\n" | ||
} | ||
] | ||
} | ||
}, | ||
"name": "CI", | ||
"on": { | ||
"pull_request": { | ||
"types": [ | ||
"opened", | ||
"synchronize" | ||
] | ||
}, | ||
"push": { | ||
"branches": [ | ||
"master" | ||
] | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
/dist/ | ||
dist/ | ||
dist-newstyle |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
**NB**: This captures the licenses associated with a particular set of dependency versions. If your own build solves differently, it’s possible that the licenses may have changed, or even that the set of dependencies itself is different. Please make sure you run [`cabal-plan license-report`](https://hackage.haskell.org/package/cabal-plan) on your own components rather than assuming this is authoritative. | ||
|
||
# Dependency License Report | ||
|
||
Bold-faced **`package-name`**s denote standard libraries bundled with `ghc-8.10.1`. | ||
|
||
## Direct dependencies of `true-name:lib:true-name` | ||
|
||
| Name | Version | [SPDX](https://spdx.org/licenses/) License Id | Description | Also depended upon by | | ||
| --- | --- | --- | --- | --- | | ||
| **`base`** | [`4.14.0.0`](http://hackage.haskell.org/package/base-4.14.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/base-4.14.0.0/src/LICENSE) | Basic libraries | *(core library)* | | ||
| **`template-haskell`** | [`2.16.0.0`](http://hackage.haskell.org/package/template-haskell-2.16.0.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/template-haskell-2.16.0.0/src/LICENSE) | Support library for Template Haskell | | | ||
|
||
## Indirect transitive dependencies | ||
|
||
| Name | Version | [SPDX](https://spdx.org/licenses/) License Id | Description | Depended upon by | | ||
| --- | --- | --- | --- | --- | | ||
| **`array`** | [`0.5.4.0`](http://hackage.haskell.org/package/array-0.5.4.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/array-0.5.4.0/src/LICENSE) | Mutable and immutable arrays | `deepseq` | | ||
| **`deepseq`** | [`1.4.4.0`](http://hackage.haskell.org/package/deepseq-1.4.4.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/deepseq-1.4.4.0/src/LICENSE) | Deep evaluation of data structures | `pretty` | | ||
| **`ghc-boot-th`** | [`8.10.1`](http://hackage.haskell.org/package/ghc-boot-th-8.10.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ghc-boot-th-8.10.1/src/LICENSE) | Shared functionality between GHC and the `template-haskell` library | `template-haskell` | | ||
| **`ghc-prim`** | [`0.6.1`](http://hackage.haskell.org/package/ghc-prim-0.6.1) | [`BSD-3-Clause`](http://hackage.haskell.org/package/ghc-prim-0.6.1/src/LICENSE) | GHC primitives | *(core library)* | | ||
| **`integer-gmp`** | [`1.0.3.0`](http://hackage.haskell.org/package/integer-gmp-1.0.3.0) | [`BSD-3-Clause`](http://hackage.haskell.org/package/integer-gmp-1.0.3.0/src/LICENSE) | Integer library based on GMP | *(core library)* | | ||
| **`pretty`** | [`1.1.3.6`](http://hackage.haskell.org/package/pretty-1.1.3.6) | [`BSD-3-Clause`](http://hackage.haskell.org/package/pretty-1.1.3.6/src/LICENSE) | Pretty-printing library | `template-haskell` | | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters