Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vmchale/github-actions-dhall
Dhall helpers for github actions
https://github.com/vmchale/github-actions-dhall
Last synced: 11 days ago
JSON representation
Dhall helpers for github actions
- Host: GitHub
- URL: https://github.com/vmchale/github-actions-dhall
- Owner: vmchale
- License: bsd-3-clause
- Created: 2019-12-05T22:50:37.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-11-08T15:53:20.000Z (about 1 year ago)
- Last Synced: 2024-08-02T07:13:22.340Z (3 months ago)
- Language: Dhall
- Size: 87.9 KB
- Stars: 55
- Watchers: 4
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-dhall - vmchale/github-actions-dhall - Dhall helpers for GitHub actions. (Libraries)
README
# github-actions-dhall
This is a demonstration using Dhall to generate YAML for
github actions.github-actions-dhall is
[self-hosting](https://github.com/vmchale/github-actions-dhall/blob/master/self-ci.dhall).## Example
### Haskell
Store the following in `example.dhall`:
```dhall
let haskellCi = https://raw.githubusercontent.com/vmchale/github-actions-dhall/master/haskell-ci.dhallin haskellCi.generalCi
haskellCi.matrixSteps
( Some
{ ghc =
[ haskellCi.GHC.GHC8101
, haskellCi.GHC.GHC883
, haskellCi.GHC.GHC865
]
, cabal = [ haskellCi.Cabal.Cabal32 ]
}
)
: haskellCi.CI.Type
```Then, generate YAML with `dhall-to-yaml --file example.dhall`
```yaml
jobs:
build:
runs-on: ubuntu-18.04
steps:
- uses: "actions/checkout@v1"
- id: setup-haskell-cabal
uses: "actions/[email protected]"
with:
cabal-version: "${{ matrix.cabal }}"
ghc-version: "${{ matrix.ghc }}"
- uses: "actions/cache@v1"
with:
key: "${{ runner.os }}-${{ matrix.ghc }}-cabal"
path: "${{ steps.setup-haskell-cabal.outputs.cabal-store }}"
- name: Install dependencies
run: |
cabal update
cabal build --enable-tests --enable-benchmarks --only-dependencies
- name: build
run: cabal build --enable-tests --enable-benchmarks
- name: test
run: cabal test
- name: haddock
run: cabal haddock
strategy:
matrix:
cabal:
- '3.2'
ghc:
- '8.10.1'
- '8.8.3'
- '8.6.5'
name: Haskell CI
on:
- push
```Have a look at
[hlint-lib](https://github.com/vmchale/hlint-lib/blob/master/self-ci.dhall) for
a more "organic" example.