Skip to content

Replace topEntity and enable extra extensions #106

Replace topEntity and enable extra extensions

Replace topEntity and enable extra extensions #106

Workflow file for this run

name: stack-templates-ci
on:
push:
branches:
- master
pull_request:
concurrency:
group: ${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
# Render
render:
name: Render
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Haskell
uses: haskell/actions/setup@v2
id: setup-haskell
with:
enable-stack: true
- name: Test
run: |
.ci/render_and_check.sh
# Stack
stack:
name: Stack / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
# Windows missing; no cross-platform CI scripts available yet.
os: ["ubuntu-latest", "macos-latest"]
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Haskell
uses: haskell/actions/setup@v2
id: setup-haskell
with:
enable-stack: true
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ${{ steps.setup-haskell.outputs.stack-root }}/snapshots
key:
${{ runner.os }}-stack-${{ hashFiles('**/*.cabal', '**/stack.yaml') }}
restore-keys: |
${{ runner.os }}-stack-
- name: Test
run: |
.ci/test_projects_stack.sh
# Cabal
cabal:
name: Cabal / ${{ matrix.os }} / ${{ matrix.ghc }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
ghc: ["8.6.5", "8.8.4", "8.10.7", "9.0.2"]
# Windows missing; no cross-platform CI scripts available yet.
os: ["ubuntu-latest", "macos-latest"]
# Unsupported by Clash:
exclude:
- os: macos-latest
ghc: 8.10.7
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Haskell
uses: haskell/actions/setup@v2
id: setup-haskell
with:
ghc-version: ${{ matrix.ghc }}
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ${{ steps.setup-haskell.outputs.cabal-store }}
key:
${{ runner.os }}-cabal-${{ matrix.ghc }}-${{ hashFiles('**/*.cabal', '**/stack.yaml') }}
restore-keys: |
${{ runner.os }}-cabal-${{ matrix.ghc }}
- name: Test
run: |
.ci/test_projects_cabal.sh
hls:
name: HLS
runs-on: ubuntu-22.04
strategy:
matrix:
tools:
- {ghc: "9.4.7", cabal: "3.8.1.0", hls: "2.4.0.0", ghcup: "0.1.20.0"}
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Haskell
run: |
sudo apt-get update
sudo apt-get install curl -y
sudo apt-get install \
build-essential curl libffi-dev libffi8ubuntu1 libgmp-dev \
libgmp10 libncurses-dev libncurses5 libtinfo5 -y
sudo curl "https://downloads.haskell.org/~ghcup/${{ matrix.tools.ghcup }}/x86_64-linux-ghcup-${{ matrix.tools.ghcup }}" --output /usr/bin/ghcup
sudo chmod +x /usr/bin/ghcup
ghcup install ghc ${{ matrix.tools.ghc }} --set --force
ghcup install cabal ${{ matrix.tools.cabal }} --set --force
ghcup install hls ${{ matrix.tools.hls }} --set --force
cabal update
echo "${HOME}/.ghcup/bin/" >> $GITHUB_PATH
ls "${HOME}/.ghcup/bin/"
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ~/.cabal/store
key: ${{ runner.os }}-cachebust1-hls-${{ matrix.tools.ghc }}-${{ matrix.tools.cabal }}-${{ matrix.tools.hls }}-${{ matrix.tools.ghcup }}-${{ hashFiles('**/*.cabal', '**/stack.yaml') }}
restore-keys: |
${{ runner.os }}-cachebust1-hls-${{ matrix.tools.ghc }}-${{ matrix.tools.cabal }}-${{ matrix.tools.hls }}-${{ matrix.tools.ghcup }}-${{ hashFiles('**/*.cabal', '**/stack.yaml') }}
${{ runner.os }}-cachebust1-hls-${{ matrix.tools.ghc }}-${{ matrix.tools.cabal }}-${{ matrix.tools.hls }}-${{ matrix.tools.ghcup }}-
- name: Test
run: |
.ci/test_projects_hls.sh
# Nix
nix:
name: Nix
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v23
with:
nix_path: nixpkgs=channel:nixos-23.05
- name: Checkout
uses: actions/checkout@v3
- name: Enable cachix
run: |
nix-env -iA cachix -f https://cachix.org/api/v1/install
cachix use clash-lang
- name: Test
run: |
.ci/test_projects_nix.sh
# Collector job, used to match on in GitHub UI
all:
name: All
needs:
- cabal
- nix
- render
- stack
- hls
runs-on: ubuntu-22.04
steps:
- run: echo OK
# Publish
publish:
name: Publish
if: github.ref == 'refs/heads/master'
needs:
- all
runs-on: ubuntu-22.04
environment: master
env:
CLASH_STARTERS_PRIVATE_KEY: ${{ secrets.CLASH_STARTERS_PRIVATE_KEY }}
CLASH_STARTERS_PUBLIC_KEY: ${{ secrets.CLASH_STARTERS_PUBLIC_KEY }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Publish
run: |
sudo apt-get update
sudo apt-get install -y git ssh zip gzip tar coreutils haskell-stack
.ci/publish.sh
# Push to Cachix
publish-nix:
name: Publish Nix
if: github.ref == 'refs/heads/master'
needs:
- all
runs-on: ubuntu-22.04
environment: master
env:
CACHIX_AUTH_TOKEN: ${{ secrets.CACHIX_AUTH_TOKEN }}
steps:
- uses: actions/checkout@v3
- uses: cachix/install-nix-action@v23
with:
nix_path: nixpkgs=channel:nixos-23.05
- name: Checkout
uses: actions/checkout@v3
- name: Enable cachix
run: |
nix-env -iA cachix -f https://cachix.org/api/v1/install
cachix use clash-lang
- name: Push to cachix
if: github.ref == 'refs/heads/master'
run: |
.ci/publish_nix.sh