Как решить синтаксическую ошибку в yaml-файле при публикации на github?

Я использую postgresql с django. Я установил действие на github, которое проверяет мой код каждый раз, когда я продвигаю или вытягиваю, и я получаю следующую ошибку: You have an error in your yaml syntax on line 19 Вот мой yaml:

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Python application

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: ubuntu-latest
    
    services:
      postgres:
        image: postgres:14
        env:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: github_actions
          
        ports:
          - 5433:5432
          
        options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python 3.9.7
      uses: actions/setup-python@v2
      with:
        python-version: "3.9.7"
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt

    - name: Test with Unittest
      env:
        SECRET_KEY: ${{secrets.SECRET_KEY}}
        EMAIL_FROM_USER: ${{secrets.EMAIL_FROM_USER}}
        EMAIL_HOST_PASSWORD: ${{secrets.EMAIL_HOST_PASSWORD}}
        DB_NAME: ${{secrets.DB_NAME}}
        DB_USER: ${{secrets.DB_USER}}
        DB_PASSWORD: ${{secrets.DB_PASSWORD}}
        DB_HOST: ${{secrets.DB_HOST}}
        DB_ENGINE: ${{secrets.DB_ENGINE}}
        DB_PORT: ${{secrets.DB_PORT}}
      run: |
        python3 manage.py test

строка 19 соответствует image: postgres:14, но я не вижу здесь никакой синтаксической ошибки. Я просмотрел несколько примеров, и все выглядит точно так же.

Для действий GitHub, настройка контейнера службы веб-приложения Django с использованием Docker Hub для образов postgres отлично работает только с этим кодом.

image: postgres

Для вашего конкретного случая, вы можете проверить, работает ли это для вас.

Чтобы ответить на свой вопрос, я следовал этим двум сообщениям, которые актуальны на сегодняшний день: https://www.hacksoft.io/blog/github-actions-in-action-setting-up-django-and-postgres

https://www.digitalocean.com/community/tutorials/how-to-use-postgresql-with-your-django-application-on-ubuntu-14-04

Убедитесь, что вы установили все зависимости. Я также установил порт на 5432 и образ на postgres:14.2. (Чтобы узнать свою версию postrgesql, вы можете ввести /usr/lib/postgresql/14/bin/postgres -V) Смотрите окончательный yml файл:

name: Python application

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: ubuntu-latest
    
    services:
      postgres:
        image: postgres:14.2
        env:
          POSTGRES_USER: postgres
          POSTGRES_PASSWORD: postgres
          POSTGRES_DB: github_action
        ports:
          - 5432:5432
        options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
    steps:
    - uses: actions/checkout@v2
    - name: Set up Python 3.10
      uses: actions/setup-python@v2
      with:
        python-version: "3.10"
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install -r requirements.txt

    - name: Test with Unittest
      env:
        SECRET_KEY: ${{secrets.SECRET_KEY}}
        EMAIL_FROM_USER: ${{secrets.EMAIL_FROM_USER}}
        EMAIL_HOST_PASSWORD: ${{secrets.EMAIL_HOST_PASSWORD}}
        DB_NAME: ${{secrets.DB_NAME}}
        DB_USER: ${{secrets.DB_USER}}
        DB_PASSWORD: ${{secrets.DB_PASSWORD}}
        DB_HOST: ${{secrets.DB_HOST}}
        DB_ENGINE: ${{secrets.DB_ENGINE}}
        DB_PORT: ${{secrets.DB_PORT}}
      run: |
        python3 manage.py test
Вернуться на верх