mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Add workflow to build and test docker image
This commit is contained in:
parent
50d861e763
commit
59866a692c
3
.github/workflows/docker_stable.yaml
vendored
3
.github/workflows/docker_stable.yaml
vendored
@ -1,4 +1,5 @@
|
||||
# Build and push latest docker image on push to master branch
|
||||
# Build and push docker image on push to 'stable' branch
|
||||
# Docker build will be uploaded to dockerhub with the 'inventree:stable' tag
|
||||
|
||||
name: Docker Build
|
||||
|
||||
|
3
.github/workflows/docker_tag.yaml
vendored
3
.github/workflows/docker_tag.yaml
vendored
@ -1,4 +1,5 @@
|
||||
# Publish docker images to dockerhub
|
||||
# Publish docker images to dockerhub on a tagged release
|
||||
# Docker build will be uploaded to dockerhub with the 'invetree:<tag>' tag
|
||||
|
||||
name: Docker Publish
|
||||
|
||||
|
41
.github/workflows/docker_test.yaml
vendored
Normal file
41
.github/workflows/docker_test.yaml
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
# Test that the InvenTree docker image compiles correctly
|
||||
|
||||
# This CI action runs on pushes to either the master or stable branches
|
||||
|
||||
# 1. Build the development docker image (as per the documentation)
|
||||
# 2. Install requied python libs into the docker container
|
||||
# 3. Launch the container
|
||||
# 4. Check that the API endpoint is available
|
||||
|
||||
name: Docker Test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
- 'stable'
|
||||
|
||||
pull_request:
|
||||
branches-ignore:
|
||||
- l10*
|
||||
|
||||
jobs:
|
||||
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v2
|
||||
- name: Build Docker Image
|
||||
run: |
|
||||
cd docker
|
||||
docker-compose -f docker-compose.dev.yml build
|
||||
docker-compose -f docker-compose.dev.yml run inventree-dev-server invoke update
|
||||
docker-compose -f docker-compose.dev.yml up -d
|
||||
- name: Sleepy Time
|
||||
run: sleep 60
|
||||
- name: Test API
|
||||
run: |
|
||||
pip install requests
|
||||
python3 ci/check_api_endpoint.py
|
40
ci/check_api_endpoint.py
Normal file
40
ci/check_api_endpoint.py
Normal file
@ -0,0 +1,40 @@
|
||||
"""
|
||||
Test that the root API endpoint is available.
|
||||
"""
|
||||
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import json
|
||||
import requests
|
||||
|
||||
# We expect the server to be running on the local host
|
||||
url = "http://localhost:8000/api/"
|
||||
|
||||
print("Testing InvenTree API endpoint")
|
||||
|
||||
response = requests.get(url)
|
||||
|
||||
assert(response.status_code == 200)
|
||||
|
||||
print("- Response 200 OK")
|
||||
|
||||
data = json.loads(response.text)
|
||||
|
||||
required_keys = [
|
||||
'server',
|
||||
'version',
|
||||
'apiVersion',
|
||||
'worker_running',
|
||||
]
|
||||
|
||||
for key in required_keys:
|
||||
assert(key in data)
|
||||
print(f"- Found key '{key}'")
|
||||
|
||||
# Check that the worker is running
|
||||
assert(data['worker_running'])
|
||||
|
||||
print("- Background worker is operational")
|
||||
|
||||
print("API Endpoint Tests Passed OK")
|
Loading…
Reference in New Issue
Block a user