Skip to content

Set the default URL source to the vanilla yaml to ensure we get the latest HLS binaries on time #1157

Set the default URL source to the vanilla yaml to ensure we get the latest HLS binaries on time

Set the default URL source to the vanilla yaml to ensure we get the latest HLS binaries on time #1157

Workflow file for this run

on:
push:
branches:
- master
pull_request:
branches:
- '**'
jobs:
build:
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
ghc: [8.10.7, 9.0.2, 9.2.8, 9.4.7, 9.6.2]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Node.js
uses: actions/setup-node@v4
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 2.2.0.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