Клонировать данные перед запуском службы в действиях github

Я пытаюсь создать рабочий процесс действия github, который зависит от базы данных (доступной в виде контейнера докеров), которая, в свою очередь, зависит от данных, которые необходимо клонировать из репозитория git. Данные должны быть доступны при запуске контейнера докеров.

В настоящее время у меня есть следующая настройка (полный файл доступен на GitHub)

      jobs:
  build-and-publish:
    runs-on: ubuntu-latest # This job uses a GitHub-hosted runner.

    services:
      # befor this service is started the repository
      # https://github.com/AKSW/aksw.org-model.git
      # needs to be clones to a volume
      fuseki:
        image: stain/jena-fuseki
        ports:
        - 3030:3030
        volumes:
        - ${{ github.workspace }}/aksw-model:/staging
        options: --entrypoint "exec /jena-fuseki/fuseki-server --file=/staging/aksw.org.nt /aksw"

    steps:
      # Checkout the data repository
      - name: Check out Model Repository
        uses: actions/checkout@v2
        with:
          # Repository name with owner. For example, actions/checkout
          # Default: ${{ github.repository }}
          repository: 'https://github.com/AKSW/aksw.org-model.git'
          path: 'aksw-model'
      - name: Further steps
        …

Если невозможно клонировать репозиторий перед запуском службы, можно ли клонировать репозиторий, а затем запустить контейнер в качестве одного из шагов и оставить его в фоновом режиме?

1 ответ

Я узнал, что могу просто определить шаг, который запускает док-контейнер. Таким образом, я мог бы сначала выполнить действие проверки, а затем запустить базу данных:

      jobs:
  build-and-publish:
    runs-on: ubuntu-latest

    steps:
      - name: Check out Model Repository
        uses: actions/checkout@v2
        with:
          repository: 'AKSW/aksw.org-model'
          path: '.aksw-model'
      - name: Run Triple Store
        run: docker run -v ${{ github.workspace }}/.aksw-model:/staging --name fuseki -d stain/jena-fuseki /jena-fuseki/fuseki-server --file=/staging/aksw.org.nt /aksw
      - …

Фактический и полный файл доступен на GitHub.

Это, в свою очередь, привело к тому, что я не мог получить доступ к контейнеру базы данных от каких-либо дальнейших действий. Эта проблема рассматривается здесь: доступ к контейнеру по имени хоста в действиях github из действия.

Другие вопросы по тегам