Search code examples
gitlabautomated-testscicd

Gitlab CI empty script


I'm trying to setup a simple CI/CD environment on gitlab. My code is a python app that needs an external service for testing. The service is a container that does not require any script to be run. My gitlab-ci.yml file is:

stages:
  - dynamodb
  - testing


build_dynamo:
  stage: dynamodb
  image: amazon/dynamodb-local:latest


unit_tests:
  stage: testing
  image: python:3.10.3
  before_script:
    - pip install -r requirements_tests.txt
    - export PYTHONPATH="${PYTHONPATH}:./src"
  script: 
    - python -m unittest discover -s ./tests -p '*test*.py'

For this config I get an error

Found errors in your .gitlab-ci.yml: jobs build_dynamo config should implement a script: or a trigger: keyword

Hiow can I solve this or implement the setup I need?


Solution

  • Using service solved this

    unit_tests:
      image: python:3.10.3-slim-buster
      services:
        - name: amazon/dynamodb-local:latest
      before_script:
        - pip install -r requirements_tests.txt
        - export PYTHONPATH="${PYTHONPATH}:./src"
      script: 
        - python -m unittest discover -s ./tests -p '*test*.py'
    

    endpoint for the service is amazon-dynamo-local:8000 since "/" are changed to "-".

    Reference: https://docs.gitlab.com/ee/ci/services/#accessing-the-services