Skip to content

Add a Gitpod descriptor #2161

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Sep 6, 2021
Merged
65 changes: 65 additions & 0 deletions .gitpod.yml
Original file line number Diff line number Diff line change
@@ -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"