mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 21:25:42 +00:00 
			
		
		
		
	Add workflow to build and test docker image
This commit is contained in:
		
							
								
								
									
										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 | 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 | 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") | ||||||
		Reference in New Issue
	
	Block a user