Skip to content

README: Init

README: Init #34

Workflow file for this run

name: "Language Server"
on:
pull_request:
branches: [ main ]
push:
branches: [ main ]
defaults:
run:
shell: bash
working-directory: ./language-server
jobs:
Changes:
runs-on: ubuntu-latest
permissions:
pull-requests: read
outputs:
language-server: ${{ steps.filter.outputs.language-server }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
with:
token: ${{ secrets.PAT }}
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
language-server:
- 'language-server/**'
- '.github/workflows/language-server.yml'
Build:
needs: changes
if: ${{ needs.changes.outputs.language-server == 'true' }}
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v4
with:
token: ${{ secrets.PAT }}
- name: Setup GHC
uses: ./.github/actions/cache-language-server
- name: Build
run: |
stack build lambdananas-language-server:exe:lambdananas-language-server \
lambdananas-language-server:test:lambdananas-language-server-test \
--no-run-tests
Format:
if: ${{ needs.changes.outputs.language-server == 'true' && github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
needs: [ Build ]
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Setup GHC
uses: ./.github/actions/cache-language-server
- uses: haskell-actions/run-fourmolu@v9
with:
version: "0.14.0.0"
pattern: |
language-server/**/*.hs
!language-server/.stack-work/
follow-symbolic-links: false
Lint:
if: ${{ needs.changes.outputs.language-server == 'true' && github.event_name == 'pull_request' }}
runs-on: ubuntu-latest
needs: [ Build ]
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Setup GHC
uses: ./.github/actions/cache-language-server
- name: 'Set up HLint'
uses: rwe/actions-hlint-setup@v1
with:
version: '3.5'
- run: cp .hlint* ..
- name: 'Run HLint'
uses: rwe/actions-hlint-run@v2
with:
path: '["language-server/app/", "language-server/src/"]'
fail-on: warning
Tests:
runs-on: ubuntu-latest
needs: [ Build ]
if: ${{ needs.changes.outputs.language-server == 'true' && always() }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Setup GHC
uses: ./.github/actions/cache-language-server
- name: Run unit tests
run: stack test