From 360fab7d0f649aed92e729b6c4711d4e0f191dc7 Mon Sep 17 00:00:00 2001 From: jctanner Date: Tue, 20 Dec 2022 22:20:39 -0500 Subject: [PATCH] Initial CI implementation with github actions (#3065) * Start CI files. * Use older ubuntu, python and setuptools * Run the unit(?) tests. * Disable tty allocation for tests. Signed-off-by: James Tanner --- .github/workflows/ci_lint.yml | 39 ++++++++++++++++++++++++++++++ .github/workflows/ci_unit.yml | 45 +++++++++++++++++++++++++++++++++++ .yamllint | 1 + Makefile | 2 +- 4 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci_lint.yml create mode 100644 .github/workflows/ci_unit.yml diff --git a/.github/workflows/ci_lint.yml b/.github/workflows/ci_lint.yml new file mode 100644 index 000000000..3629aa7fe --- /dev/null +++ b/.github/workflows/ci_lint.yml @@ -0,0 +1,39 @@ +--- +name: Lint +on: + pull_request: + branches: + - '**' + paths-ignore: + - 'docs/**' + push: + branches: + - '**' + workflow_dispatch: + +jobs: + + linters: + + # https://github.com/actions/setup-python/issues/355#issuecomment-1335042510 + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-python@v2 + with: + python-version: "3.6" + + # https://stackoverflow.com/a/72611356 + - name: downgrade setuptools + run: pip install setuptools~=57.5.0 + + - name: install requirements + run: pip install -r requirements/dev-requirements.txt + + - name: python lint + run: make test/flake8 + + - name: yaml lint + run: make test/yamllint diff --git a/.github/workflows/ci_unit.yml b/.github/workflows/ci_unit.yml new file mode 100644 index 000000000..198b7585b --- /dev/null +++ b/.github/workflows/ci_unit.yml @@ -0,0 +1,45 @@ +--- +name: Unit +on: + pull_request: + branches: + - '**' + paths-ignore: + - 'docs/**' + push: + branches: + - '**' + workflow_dispatch: + +jobs: + + pytest: + + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-python@v2 + with: + python-version: "3.10" + + # - name: Update apt + # run: sudo apt -y update + + # - name: Install LDAP requirements + # run: sudo apt-get install -y libsasl2-dev python3 libldap2-dev libssl-dev build-essential + + - name: Install docker-compose + run: pip3 install --upgrade docker-compose + + - name: build the image + run: make dev/build + + - name: start the containers + run: make dev/up_detached + + - name: wait for stack to settle + run: sleep 360 + + - name: start the tests + run: make dev/test diff --git a/.yamllint b/.yamllint index 29d6c1cf7..86d7a5105 100644 --- a/.yamllint +++ b/.yamllint @@ -6,3 +6,4 @@ ignore: | rules: line-length: disable + truthy: disable diff --git a/Makefile b/Makefile index a514f01b9..cf810e59e 100644 --- a/Makefile +++ b/Makefile @@ -199,7 +199,7 @@ dev/test: # Other option are: # - install side packages globally or # - call tools using python api instead of shell commands. - @$(DOCKER_COMPOSE) exec galaxy bash -c '\ + @$(DOCKER_COMPOSE) exec -T galaxy bash -c '\ source $(GALAXY_VENV)/bin/activate; \ export DJANGO_SETTINGS_MODULE=galaxy.settings.testing; \ pytest galaxy \