Skip to content
Snippets Groups Projects
Commit 821ce057 authored by Vaclav Sraier's avatar Vaclav Sraier Committed by Aleš Mrázek
Browse files

updated README.md with minimal setup, configured CI for linting

parent 7fcf86a9
Branches
Tags
No related merge requests found
stages:
- check
image: debian:latest
# FIXME - use custom Docker image, so that we don't rebuild it all every single time
lint:
image: debian:latest
stage: check
variables:
# Python by default uses ascii encoding, which does not work, because source files are in UTF-8. Here is a potential solution, but for newer Python https://www.python.org/dev/peps/pep-0540/
LC_ALL: C.UTF-8
# this job uses messy tricks to install dependencies quickly, if something goes wrong, it should kill itself reasonably fast
timeout: 5 minutes
# FIXME cache does not seem to have any effect when running locally, it might be the same in CI
cache:
key: "always-the-same-cache"
paths:
- node_modules/
# FIXME caching these would help, but gitlab refuses to cache anything outside of project's directory
#- /root/.pyenv/
#- /root/.poetry/
#- /root/.nvm/
#- /var/cache/
policy: pull-push
script:
# pyenv setup deps
- apt-get update && apt-get install --no-install-recommends --no-install-suggests -y build-essential git ca-certificates
# python build deps
- apt-get update && apt-get install --no-install-recommends --no-install-suggests -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
# Yarn and NodeJS
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
- export NVM_DIR="$HOME/.nvm"
- \[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
- \[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
- nvm install --lts node
- nvm use node
- nvm install-latest-npm
# install pyenv
- unset PYENV_ROOT
- curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
- export PATH="$HOME/.pyenv/bin:$PATH"
- eval "$(pyenv init -)"
- eval "$(pyenv virtualenv-init -)"
# install python via pyenv
- pyenv install
- pyenv global 3.6.12
# install poetry
- curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
- export PATH="$HOME/.poetry/bin:$PATH"
# run the actual tests
- poetry install
- npm install
- ./poe check
\ No newline at end of file
......@@ -11,15 +11,21 @@ Install these tools:
* [Poetry](https://python-poetry.org/docs/#installation)
* [Yarn](https://yarnpkg.com/) (See FAQ for why do we need JS in Python project) or NPM
The actual development environment can be setup using these commands:
The actual fully-featured development environment can be setup using these commands:
```sh
pyenv install
pyenv install 3.6.12 3.7.9 3.8.7 3.9.1
poetry env use $(pyenv which python)
poetry install
yarn install # or npm install
yarn install # or "npm install"
```
With this environment, everything else should just work. You can run the same checks the CI runs, all commands listed bellow should pass.
### Minimal development environment
The only global tools that are strictly required are `Python` and `pip` (or other way to install PyPI packages). You can have a look at the `pyproject.toml` file, manually install all other dependencies that you need and be done with that. All `poe` commands (see bellow) can be run manually too, see their definition in `pyproject.toml`. We can't however guarantee, that there won't be any errors.
### Common tasks and interactions with the project
After setting up the environment, you should be able to interract with the project by using the `./poe` script. Common actions are:
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment