[PYTHON] Schritte zum Erstellen eines Jobs, der ein Docker-Image abruft und mit Github-Aktionen testet

Dieses Mal habe ich geübt, pytest auf dem Bild von docker-compose mit Github Actions für das Repository des Python-Projekts zu machen, also werde ich das Memo schreiben.

Voraussetzungen

--Erstellen Sie ein Token für Github-Pakete. --Docker Login.

Ordnerstruktur


repository/             #Repository-Verzeichnis
 ├ .github/
 │ ├ workflows/
 │ │ └ sample.yml     #Github-Aktionsdatei
 ├ project/
 │ ├ sample/           #(Erklärung weggelassen)
 │ │ ├ __init__.py
 │ │ └ add.py
 │ └ test/             #(Erklärung weggelassen)
 │   ├ __init__.py   
 │   └ test_add.py
 ├ docker-compose.yml   #Detaillierte Beschreibung später
 ├ Dockerfile           #Passendes Python-Image (Erklärung weggelassen)
 └ requirements.txt     #Beschreiben Sie das entsprechende Paket (diesmal wird nur der Pytest beschrieben).

Verfahren

  1. Geben Sie in docker-compose.yml das Bild ghcr.io mit dem angegebenen Bildnamen ein.
  2. Nachdem Sie ein Bild mit "Docker-Compose Up" erstellt haben, drücken Sie das Bild mit "Docker-Compose Push"
  3. Ziehen Sie mit der Github-Aktionsdatei und führen Sie einen Pytest durch!

Laden Sie das Bild auf ghcr.io hoch.

Geben Sie das Bild wie folgt an.

docker-compose.yml


 services:
    python:
        build: .
        #image: ghcr.io/Github Benutzername/Repository-Name/Bildname:Verlinke den Namen
        image: ghcr.io/n-jun-k2/sample-actions/python:v1

Erstellen Sie ein Bild lokal und verschieben Sie es.

#Erstellen Sie vorerst wie gewohnt ein Bild
docker-compose up -d 
#Bild schieben
docker-compose push

Informationen zu CI-Dateien von Github-Aktionen

Bitte ändern Sie ... entsprechend. Auschecken, einloggen und ziehen, um einen Pytest durchzuführen.

yml:.github/workflows/sample.yml


name: ...
on:
  ...

jobs:
  ...:
    name: ...
    runs-on: ubuntu-20.04
    steps:
        - name: Checkout                                         #Auschecken
          uses: actions/checkout@v2
        - name: Login to Docker                                  #Docker-Login
          uses: docker/login-action@v1
          with:
            registry: ghcr.io
            username: ${{ github.repository_owner }}
            password: ${{ secrets.GHCR_IO_TOKEN }}
        - name: Set up Docker                                    #Ziehen Sie, um das Bild zu starten
          run: |
            docker pull ghcr.io/n-jun-k2/sample-actions/python:v1
            docker-compose up -d
        - name: Run test                                         #Mach einen Pytest.
          run: docker-compose exec -T python pytest

Diese CI-Datei wird auf dem Docker-Compose-Image getestet.

Beachten Sie, dass Sie nicht vergessen, die Option -T unten anzugeben! Ich werde einen Fehler bekommen

docker-compose exec -T python pytest

Recommended Posts

Schritte zum Erstellen eines Jobs, der ein Docker-Image abruft und mit Github-Aktionen testet
[Golang] Erstellen Sie ein Docker-Image mit Github-Aktionen
Schritte zum Einrichten von Pipenv, Erstellen einer CRUD-App mit Flask und Containerisieren mit Docker
Ich möchte eine Pipfile erstellen und im Docker wiedergeben
Schritte zum Erstellen eines Twitter-Bots mit Python
Ich habe ein privates Python-Paket, möchte aber pipenv auf GitHub Actions installieren und ein Docker-Image erstellen
[Linux] Erstellen Sie ein Selbstzertifikat mit Docker und Apache
Ich habe ein Docker-Image erstellt, das RSS liest und automatisch regelmäßig twittert, und es veröffentlicht.
Ein einfaches System, das automatisch mit Objekterkennung aufnimmt und an LINE sendet
Erstellen Sie mit Streamlit schnell ein Python-Datenanalyse-Dashboard und stellen Sie es in AWS bereit
Schritte zum schnellen Erstellen einer umfassenden Lernumgebung auf einem Mac mit TensorFlow und OpenCV
Ein Skript, mit dem Sie mit der LINE Messaging-API auf einfache Weise umfangreiche Menüs erstellen können
Erstellen Sie ein Bereitstellungsskript mit Stoff und Küche und verwenden Sie es erneut
Erstellen Sie eine temporäre Datei mit Django als Zip und geben Sie sie zurück
Ich habe versucht, Bulls and Cows mit einem Shell-Programm zu erstellen
Erstellen Sie ein Docker-Container-Image mit JRE8 / JDK8 unter Amazon Linux
Schritte zum Erstellen eines Django-Projekts
Ich habe GhostScript mit Python ausgeführt, das PDF in Seiten aufgeteilt und es in ein JPEG-Bild konvertiert.
Vorgehensweise zum Erstellen einer virtuellen Python-Umgebung mit VS-Code unter Windows
[Python] Erstellen Sie einen Linebot, um den Namen und das Alter auf das Bild zu schreiben
So machen Sie den Containernamen in Docker als Subdomain zugänglich
Ein Python-Programm, das die Größe eines Videos ändert und es in ein Bild verwandelt
Starten Sie die Webkamera, machen Sie ein Standbild und speichern Sie es lokal
Erstellen Sie mit Python einen Entscheidungsbaum von 0 und verstehen Sie ihn (5. Information Entropy)
So erstellen Sie einen Klon aus Github
Erstellen Sie mit Python + PIL ein Dummy-Image.
Ich habe mir eine Möglichkeit ausgedacht, ein 3D-Modell aus einem Foto zu erstellen. Teil 02 Laden von Bildern und Zeichnen von Scheitelpunkten
Ich habe ein System erstellt, das automatisch entscheidet, ob es morgen mit Python ausgeführt wird, und es zu Google Kalender hinzufügt.
Erstellen Sie einen Webdienst mit Docker + Flask
Erstellen Sie eine API zum Konvertieren von PDF-Dateien in TIF-Bilder mit FastAPI und Docker
Ein Zauber, der nicht japanische Zeichen und Symbole eliminiert und einen einfachen japanischen Korpus erzeugt
Als ich versuchte, mit Python eine virtuelle Umgebung zu erstellen, funktionierte dies nicht
Ich möchte ein Element mit numpy in eine Datei schreiben und es überprüfen.
Verwenden Sie den Befehl [shell], um eine beliebige Datei zu komprimieren, um eine Datei zu erstellen und die Originaldatei zu löschen.
Erstellen Sie eine Datenanalyseumgebung, die die GitHub-Authentifizierung und Django mit JupyterHub verbindet
Erstellen Sie mit matplotlib ein gestapeltes Diagramm, das sowohl der positiven als auch der negativen Richtung entspricht
Erstellen Sie eine Web-App, die PDF mit Flask und PyPDF2 in Text konvertiert
Ich habe versucht, eine einfache Bilderkennungs-API mit Fast API und Tensorflow zu erstellen
[Python] So erstellen Sie eine lokale Webserverumgebung mit SimpleHTTPServer und CGIHTTPServer
Eine neue Form der App, die mit GitHub funktioniert: So erstellen Sie GitHub-Apps
Ich habe versucht, es ein- und auszuschalten, indem ich "Ein Plug-In erstellen, das Leerzeichen mit Sublime Text 2 in voller Breite hervorhebt" eingestellt habe.
Ich habe versucht, ein Projekt mit Python on Docker mit PyCharm zu erstellen, aber es hat mit Docker Compose funktioniert
Erstellen Sie eine Seite, die unbegrenzt mit Python geladen wird
Verfahren zur Erstellung plattformübergreifender Apps mit kivy
Python-Skript, das das Azure-Status-RSS crawlt und an Hipchat sendet
Erstellen Sie einen Discord-Bot, der einseitig mit Python benachrichtigt (nur Anfragen und JSON werden verwendet).
So erstellen Sie einen USB-Stick, mit dem Linux- und Win10-Installer und Winpe UEFI starten können
Erstellen Sie mit OpenCV und Python (Mertens, Robertson, Debevec) ein High Dynamic Range Image (HDR).
[Einführung in den Systemhandel] Ich habe einen Stochastic Oscillator mit Python gezeichnet und damit gespielt ♬
Erstellt eine Web-App, die IT-Ereignisinformationen mit Vue und Flask abbildet
Von der Einführung von Flask unter CentOS bis zum Service unter Nginx und uWSGI
Mit der Docker-Version der Nginx-Einheit war es ein wenig schwierig, eine Flasche zu machen
Ein Memo, das das Gesicht des mit Djangos OpenCV von der Webkamera aufgenommenen Bilds erkennt und zurückgibt.
Bildverarbeitung mit Python (ich habe versucht, es in 0 und 1 Mosaikkunst zu binarisieren)