Merge pull request #951 from haskell/dependabot/npm_and_yarn/types/no… #1073
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
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- '**' | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-11, ubuntu-latest, windows-latest] | |
ghc: [8.10.4, 8.10.7, 9.0.2, 9.2.8, 9.4.5, 9.6.2] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
## make sure this corresponds with the version in release.yml | |
node-version: latest | |
# Install test dependencies | |
- run: yarn install --immutable --immutable-cache --check-cache | |
- run: yarn run webpack | |
- name: Toolchain settings | |
run: | | |
ghcup upgrade -i -f | |
export GHCUP_INSTALL_BASE_PREFIX=$(pwd)/test-workspace/bin | |
ghcup config set cache true | |
ghcup install stack latest | |
ghcup install cabal latest | |
ghcup install ghc ${{matrix.ghc}} | |
ghcup set ghc ${{matrix.ghc}} | |
ghcup install hls 1.4.0 | |
ghcup install hls latest | |
shell: bash | |
# Run the tests | |
- name: Run the test on Linux | |
run: | | |
export GHCUP_INSTALL_BASE_PREFIX=$(pwd)/test-workspace/bin | |
export PATH="$(pwd)/test-workspace/bin/.ghcup/bin:$PATH" | |
xvfb-run -s '-screen 0 640x480x16' -a yarn run test | |
shell: bash | |
if: runner.os == 'Linux' | |
- name: Run the test on macOS | |
run: | | |
export GHCUP_INSTALL_BASE_PREFIX=$(pwd)/test-workspace/bin | |
export PATH="$(pwd)/test-workspace/bin/.ghcup/bin:$PATH" | |
yarn run test | |
shell: bash | |
if: runner.os == 'macOS' | |
- name: Run the test on Windows | |
run: | | |
export GHCUP_INSTALL_BASE_PREFIX=$(pwd)/test-workspace/bin | |
export PATH="$(pwd)/test-workspace/bin/ghcup/bin:$PATH" | |
yarn run test | |
shell: bash | |
if: runner.os == 'Windows' | |
# Create package artefacts | |
- name: Delete test artefacts | |
# The test-suite doesn't clean up correctly after itself. | |
# This is a poor man's workaround that after test execution, | |
# the test-workspace still contains binaries and caches. | |
run: | | |
rm -rf test-workspace | |
rm -rf out | |
shell: bash | |
- name: Package tested extension | |
if: runner.os == 'Linux' | |
run: npx vsce package | |
- name: Upload extension vsix to workflow artifacts | |
if: runner.os == 'Linux' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: haskell-${{ github.sha }}.vsix | |
path: haskell-*.vsix |