Replace topEntity and enable extra extensions #114
Workflow file for this run
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
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 |