Skip to content

Commit

Permalink
Merge pull request #135 from maykinmedia/feature/ci-push-docker-via-g…
Browse files Browse the repository at this point in the history
…ithub-action

Feature/ci push docker via GitHub action
  • Loading branch information
annashamray committed Jan 13, 2021
2 parents a4cd6f4 + 57fa1cf commit 194a3d3
Show file tree
Hide file tree
Showing 7 changed files with 142 additions and 93 deletions.
101 changes: 101 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
name: ci

on:
push:
branches:
- master
tags:
pull_request:
workflow_dispatch:

env:
IMAGE_NAME: maykinmedia/objects-api

jobs:
tests:
name: Run the Django test suite
runs-on: ubuntu-latest

services:
postgres:
image: postgis/postgis:10-2.5
env:
POSTGRES_HOST_AUTH_METHOD: trust
ports:
- 5432:5432
# needed because the postgres container does not provide a healthcheck
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5

steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.7'
- uses: actions/setup-node@v2-beta
with:
node-version: '12'

- name: Install system packages
run: |
sudo apt-get update \
&& sudo apt-get install -y --no-install-recommends \
libgdal-dev \
gdal-bin
- name: Install dependencies
run: pip install -r requirements/dev.txt codecov
- name: Build frontend
run: |
npm ci
npm run build
- name: Run tests
run: |
python src/manage.py collectstatic --noinput --link
coverage run src/manage.py test src
env:
DJANGO_SETTINGS_MODULE: objects.conf.dev
SECRET_KEY: dummy
DB_USER: postgres
DB_PASSWORD: ''

- name: Publish coverage report
uses: codecov/codecov-action@v1

docker:
needs: tests

name: Build (and push) Docker image
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Set tag
id: vars
run: |
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
# Strip "v" prefix from tag name (if present at all)
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')
# Use Docker `latest` tag convention
[ "$VERSION" == "master" ] && VERSION=latest
echo ::set-output name=tag::${VERSION}
- name: Build the Docker image
env:
RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
run: docker build . --tag $IMAGE_NAME:$RELEASE_VERSION

- name: Log into registry
if: github.event_name == 'push' # exclude PRs
run: echo "${{ secrets.DOCKER_TOKEN }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin

- name: Push the Docker image
if: github.event_name == 'push' # exclude PRs
env:
RELEASE_VERSION: ${{ steps.vars.outputs.tag }}
run: docker push $IMAGE_NAME:$RELEASE_VERSION
35 changes: 35 additions & 0 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: code-quality

on: [push]

jobs:
isort:
name: Check import sorting
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.7'
- uses: isort/isort-action@v0.1.0
with:
requirementsFiles: requirements/dev.txt
sortPaths: "src docs"
configuration: '--check-only --diff'

black:
name: Check code formatting with black
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.7'
- name: Install dependencies
run: |
pip install -r requirements/dev.txt
- name: Run black
run: |
black --check src docs
File renamed without changes.
87 changes: 0 additions & 87 deletions .travis.yml

This file was deleted.

4 changes: 2 additions & 2 deletions README.NL.rst
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,9 @@ Licensed under the EUPL_

.. _`EUPL`: LICENSE.md

.. |build-status| image:: https://travis-ci.com/maykinmedia/objects-api.svg?branch=master
.. |build-status| image:: https://github.com/maykinmedia/objects-api/workflows/ci/badge.svg?branch=master
:alt: Build status
:target: https://travis-ci.com/maykinmedia/objects-api
:target: https://github.com/maykinmedia/objects-api/actions?query=workflow%3Aci

.. |docs| image:: https://readthedocs.org/projects/objects-and-objecttypes-api/badge/?version=latest
:target: https://objects-and-objecttypes-api.readthedocs.io/
Expand Down
4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,9 @@ Licensed under the EUPL_

.. _`EUPL`: LICENSE.md

.. |build-status| image:: https://travis-ci.com/maykinmedia/objects-api.svg?branch=master
.. |build-status| image:: https://github.com/maykinmedia/objects-api/workflows/ci/badge.svg?branch=master
:alt: Build status
:target: https://travis-ci.com/maykinmedia/objects-api
:target: https://github.com/maykinmedia/objects-api/actions?query=workflow%3Aci

.. |docs| image:: https://readthedocs.org/projects/objects-and-objecttypes-api/badge/?version=latest
:target: https://objects-and-objecttypes-api.readthedocs.io/
Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
"sphinx.ext.todo",
"sphinx_tabs.tabs",
"recommonmark",
# "sphinx_markdown_tables",
# "sphinx_markdown_tables",
]

# Add any paths that contain templates here, relative to this directory.
Expand Down Expand Up @@ -76,7 +76,7 @@
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ["_static"]
html_css_files = [
'theme_overrides.css', # override wide tables with word wrap
"theme_overrides.css", # override wide tables with word wrap
]

todo_include_todos = True
Expand Down

0 comments on commit 194a3d3

Please sign in to comment.