Add a Gitpod descriptor (#2161)

* add a gitpod descriptor

* preinstall haskell extension and error lens

* before

* fix tasks

* workspace

* cabal dir

* stack root

* Make HLS work in gitpod

* tweaks

* Fix GHC version
This commit is contained in:
Pepe Iborra 2021-09-06 22:45:21 +02:00 committed by GitHub
parent 10d3554a19
commit 5afea908d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

65
.gitpod.yml Normal file
View File

@ -0,0 +1,65 @@
# List the start up tasks. Learn more https://www.gitpod.io/docs/config-start-tasks/
tasks:
- before: |
# Only the /workspace folder is persistent
export XDG_DATA_HOME=/workspace/.local/share
export XDG_CONFIG_HOME=/workspace/.local/config
export XDG_STATE_HOME=/workspace/.local/state
export XDG_CACHE_HOME=/workspace/.cache
export CABAL_DIR=/workspace/.cabal
export STACK_ROOT=/workspace/.stack
# install ghcup, ghc and cabal
export GHCUP_INSTALL_BASE_PREFIX=/workspace
export BOOTSTRAP_HASKELL_NONINTERACTIVE=1
export BOOTSTRAP_HASKELL_MINIMAL=1
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
/workspace/.ghcup/bin/ghcup install ghc --set
/workspace/.ghcup/bin/ghcup install cabal
# Add ghcup binaries to the PATH since VSCode does not see 'source .ghcup/env'
pushd /usr/local/bin
sudo ln -s /workspace/.ghcup/bin/* /usr/local/bin
popd
# Fix the Cabal dir since VSCode does not see CABAL_DIR
cabal update
echo "Symlinking /workspace/.cabal to ~/.cabal"
ln -s /workspace/.cabal ~
# Configure VSCode to use the locally built version of HLS
mkdir -p .vscode
echo '{ "haskell.serverExecutablePath": "/workspace/.cabal/bin/haskell-language-server" }' > .vscode/settings.json
init: |
cabal configure --enable-executable-dynamic
cabal build --enable-tests
cabal install exe:haskell-language-server
command: |
cabal build --enable-tests
# List the ports to expose. Learn more https://www.gitpod.io/docs/config-ports/
ports: []
github:
prebuilds:
# enable for the master/default branch (defaults to true)
master: true
# enable for all branches in this repo (defaults to false)
branches: false
# enable for pull requests coming from this repo (defaults to true)
pullRequests: true
# enable for pull requests coming from forks (defaults to false)
pullRequestsFromForks: true
# add a "Review in Gitpod" button as a comment to pull requests (defaults to true)
addComment: false
# add a "Review in Gitpod" button to pull requests (defaults to false)
addBadge: false
# add a label once the prebuild is ready to pull requests (defaults to false)
addLabel: prebuilt-in-gitpod
vscode:
extensions:
- "haskell.haskell"
- "justusadam.language-haskell"
- "usernamehw.errorlens"