A microservice that transforms Phabricator revisions into Autoland Transplant requests.
Part of Mozilla Conduit, our code-management microservice ecosystem.
- docker and docker-compose (on OS X and Windows you should use the full Docker for Mac or Docker for Windows systems, respectively)
pyinvoke
- Because
pyinvoke
currently has no backward-compatibility guarantees, it is suggested that you install exactly version 0.21.0 viapip
:pip install invoke==0.21.0
orpip install --user invoke==0.21.0
. - You can use a virtualenv instead of installing it system-wide, but you should create the virtualenv outside of the lando-api source directory so that the linter doesn't check the virtualenv files.
- If you are running Windows, you will need a special file in your user
directory (typically
C:\Users\<username>\
) called.invoke.yml
. It should contain the following:run: shell: C:\Windows\System32\cmd.exe
- Because
To build and start the development services containers (remove -d
if logs
should be printed out):
$ docker-compose up -d
To create a database:
$ invoke init
You can use a tool like httpie to test the service.
To stop the containers run
$ docker-compose down
Start the development services and visit http://localhost:8888/ui/ in your browser to view the API documentation.
lando-api's tests use pytest
with pytest-flask
, executed within a
Docker container. The tests are located in ./tests/
. You can run
all of them via invoke
:
$ invoke test
You can provide options to pytest in testargs
argument:
$ invoke test --testargs tests/test_landings.py
Please wrap the testargs with ""
if more than one is needed.
Subsets of the tests, e.g. linters, and other commands are also available. Run
invoke -l
to see all tasks.
Please run the
lando-api.db
container before accessing the database.
$ invoke add-migration "{description of applied changes}"
$ invoke upgrade
Upgrade to the newest migration:
$ docker run [OPTIONS] IMAGE lando-cli db upgrade
Run lando-api.db
container if development containers are down.
$ docker-compose up -d lando-api.db
Access the database server (password is password
)
$ psql -h localhost --port 54321 --user postgres -d lando_api_dev
Password for user postgres: