Mijn vraag
Ik beheer een stukje geschreven open source Python code welke inmiddels in tractie flink toeneemt. Steeds meer gebruikers zijn er afhankelijk van en hoewel ik vandaag steeds meer werk met code en hier steeds comfortabeler mee word ben ik nog niet bekend genoeg om hier de juiste knopen mee door te hakken.
Nu er steeds meer feature requests in het project plaatsvinden en commits / PR's door 3 maintainers worden ingeschoten wil ik nu ingrijpen voordat het overzicht echt weg is.
In het kort: het stukje code wordt gebruikt om 2 systemen aan elkaar te koppelen. Dit maakt het voor mij lastig gezien een test hierop draaien een stuk lastiger (voor mij) zal zijn met HTTP API REST calls tussen de 2 systemen. Ik heb hier iets vernomen over het "mocken" van API's maar hier heb ik simpelweg nog te weinig verstand van. Mocht dit het ei van Columbus zijn heb ik er geen probleem mee om hier extra tijd aan te spenderen, echter was ik al een andere richting op gegaan.
Relevante software en hardware die ik gebruik
Github actions, Git, Python, Docker, Docker compose
Wat ik al gevonden of geprobeerd heb
Gisteravond heb ik geprobeerd om een Github action op te zetten waarin een ubuntu-latest image wordt gebruikt, de nodige dependencies wordt geinstalleerd (docker compose, docker, python), binding naar onderliggende docker stack en daarna een git clone gedaan van een van de 2 software pakketten in compose vorm. Ik kreeg de stack verder niet operationeel, de applicatie kreeg geen verbinding met de database in de zelfde compose stack.
Het globale idee wat ik voor nu voor ogen heb:
1. Github action inrichten met unittests / script draaien tegen 2 test systemen. Een van deze 2 test systemen is gevuld met dummy data (pg export inladen in postgresql voordat de volledige compose stack operationeel is). Het andere systeem is ontvanger, hier moet ook een DB dump naar toe maar dan vooral voor een account met token voor HTTP REST API toegang.
2. Draai het script met verschillende parameters, opties etc. en kijk of deze crashed of niet. Bij een crash zal het script zelf een foute exit code sturen en zal de Git action dan ook falen.
3. Unittests op de modules waarop dit wel kan zoals class functies en modules zonder REST calls.
Zit ik hiermee op de juiste weg en heeft er iemand ervaring om op een soortgelijke manier een test uit te voeren met docker (compose) in een Github action? Of zitten we hier wel veel haken en ogen aan.
Uiteraard een linkje naar de code voor wie er geinteresseerd in is / wil kijken onder de motorkap
https://github.com/TheNetworkGuy/netbox-zabbix-sync
En uiteraard heb ik zelf naar vergelijkbare resources gekeken:
https://medium.com/@nima....ion-template-4c0b77abe3c3
https://datawookie.dev/blog/2024/04/dind-in-github-actions/
Ik beheer een stukje geschreven open source Python code welke inmiddels in tractie flink toeneemt. Steeds meer gebruikers zijn er afhankelijk van en hoewel ik vandaag steeds meer werk met code en hier steeds comfortabeler mee word ben ik nog niet bekend genoeg om hier de juiste knopen mee door te hakken.
Nu er steeds meer feature requests in het project plaatsvinden en commits / PR's door 3 maintainers worden ingeschoten wil ik nu ingrijpen voordat het overzicht echt weg is.
In het kort: het stukje code wordt gebruikt om 2 systemen aan elkaar te koppelen. Dit maakt het voor mij lastig gezien een test hierop draaien een stuk lastiger (voor mij) zal zijn met HTTP API REST calls tussen de 2 systemen. Ik heb hier iets vernomen over het "mocken" van API's maar hier heb ik simpelweg nog te weinig verstand van. Mocht dit het ei van Columbus zijn heb ik er geen probleem mee om hier extra tijd aan te spenderen, echter was ik al een andere richting op gegaan.
Relevante software en hardware die ik gebruik
Github actions, Git, Python, Docker, Docker compose
Wat ik al gevonden of geprobeerd heb
Gisteravond heb ik geprobeerd om een Github action op te zetten waarin een ubuntu-latest image wordt gebruikt, de nodige dependencies wordt geinstalleerd (docker compose, docker, python), binding naar onderliggende docker stack en daarna een git clone gedaan van een van de 2 software pakketten in compose vorm. Ik kreeg de stack verder niet operationeel, de applicatie kreeg geen verbinding met de database in de zelfde compose stack.
Het globale idee wat ik voor nu voor ogen heb:
1. Github action inrichten met unittests / script draaien tegen 2 test systemen. Een van deze 2 test systemen is gevuld met dummy data (pg export inladen in postgresql voordat de volledige compose stack operationeel is). Het andere systeem is ontvanger, hier moet ook een DB dump naar toe maar dan vooral voor een account met token voor HTTP REST API toegang.
2. Draai het script met verschillende parameters, opties etc. en kijk of deze crashed of niet. Bij een crash zal het script zelf een foute exit code sturen en zal de Git action dan ook falen.
3. Unittests op de modules waarop dit wel kan zoals class functies en modules zonder REST calls.
Zit ik hiermee op de juiste weg en heeft er iemand ervaring om op een soortgelijke manier een test uit te voeren met docker (compose) in een Github action? Of zitten we hier wel veel haken en ogen aan.
Uiteraard een linkje naar de code voor wie er geinteresseerd in is / wil kijken onder de motorkap
En uiteraard heb ik zelf naar vergelijkbare resources gekeken:
https://medium.com/@nima....ion-template-4c0b77abe3c3
https://datawookie.dev/blog/2024/04/dind-in-github-actions/
[ Voor 4% gewijzigd door Yariva op 15-04-2025 09:59 ]
Mensen zijn gelijk, maar sommige zijn gelijker dan andere | Humans need not apply