Cette fois, je me suis exercé à faire du pytest
sur l'image de docker-compose
avec `` Github Actions '' pour le référentiel du projet Python, donc j'écrirai le mémo.
--Créez un jeton pour les packages Github.
Secrets '' dans n'importe quel référentiel sur Github. <br> (Enregistré en tant que
GHCR_IO_TOKEN`` dans mon environnement.)
repository/ #Répertoire du référentiel
├ .github/
│ ├ workflows/
│ │ └ sample.yml #Fichier d'actions Github
├ project/
│ ├ sample/ #(Explication omise)
│ │ ├ __init__.py
│ │ └ add.py
│ └ test/ #(Explication omise)
│ ├ __init__.py
│ └ test_add.py
├ docker-compose.yml #Description détaillée plus tard
├ Dockerfile #Image Python appropriée (explication omise)
└ requirements.txt #Décrivez le package approprié (seul pytest est décrit cette fois)
ghcr.io
dans docker-compose.yml avec le nom d'image spécifié. docker-compose up
, poussez l'image avec `` docker-compose push ''Spécifiez l'image comme suit.
docker-compose.yml
services:
python:
build: .
#image: ghcr.io/Nom d'utilisateur Github/Nom du référentiel/Nom de l'image:Nom de la balise
image: ghcr.io/n-jun-k2/sample-actions/python:v1
Créez une image localement et poussez-la.
#Pour le moment, créez une image comme d'habitude
docker-compose up -d
#Image push
docker-compose push
Veuillez modifier `` ... '' de manière appropriée. Vérifiez, connectez-vous et tirez pour faire un test.
yml:.github/workflows/sample.yml
name: ...
on:
...
jobs:
...:
name: ...
runs-on: ubuntu-20.04
steps:
- name: Checkout #Check-out
uses: actions/checkout@v2
- name: Login to Docker #connexion docker
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GHCR_IO_TOKEN }}
- name: Set up Docker #Tirez pour lancer l'image
run: |
docker pull ghcr.io/n-jun-k2/sample-actions/python:v1
docker-compose up -d
- name: Run test #Faites un pytest.
run: docker-compose exec -T python pytest
Ce fichier CI effectuera un pytest sur l'image docker-compose.
Notez que n'oubliez pas d'inclure l'option `` -T '' ci-dessous! J'obtiendrai une erreur
docker-compose exec -T python pytest