Github Action: файл s3cfg не найден в / home / runner - PullRequest
0 голосов
/ 26 апреля 2020

В моем рабочем процессе действий github я хочу загрузить текстовый файл в s3. в папке моих проектов root я создал файл .s3cfg

, это мой action.yml файл.

name: Github Action
on:
  push:
    branches:
      - fix/build

jobs:
  test:
    runs-on: ubuntu-18.04

    steps:
      - uses: actions/checkout@v1
      - name: Bootstrap app on Ubuntu
        uses: actions/setup-node@v1
        with:
          node-version: 12
      - name: Install s3cmd
        run: sudo apt install s3cmd
      - name: Install global packages
        run: npm install -g yarn

      - name: Install project deps
        run: yarn

      - name: Build the app
        run: yarn build

      - name: Upload a simple text file to s3
        run: sudo s3cmd put src/taka.txt s3://ashik-test -P


, но я получаю эту ошибку: ERROR: /home/runner/.s3cfg: None ERROR: Configuration file not available.

Как я могу это исправить?

1 Ответ

1 голос
/ 26 апреля 2020

Похоже, вы не совсем уверены, где ваш код репозитория монтируется / помещается в виртуальную машину, размещенную на GitHub.

Из Документов Действия GitHub:
https://help.github.com/en/actions/reference/virtual-environments-for-github-hosted-runners ( таблица, которую я скопировал и вставил, не очень хорошо отформатирована ниже, поэтому, если вы запутались, нажмите на ссылку)

Файловые системы на хостах, размещенных на GitHub GitHub выполняет действия и команды оболочки в указанных c каталоги на виртуальной машине. Пути к файлам на виртуальных машинах не являются c. Используйте переменные среды, которые GitHub предоставляет для создания путей к файлам для каталогов home, workspace и workflow.

Переменная среды Directory Description

home HOME Содержит данные, относящиеся к пользователю. Например, этот каталог может содержать учетные данные при попытке входа в систему.

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

Я только что посмотрел на s3cmd --help

Usage: s3cmd [options] COMMAND [parameters]

S3cmd is a tool for managing objects in Amazon S3 storage. It allows for
making and removing "buckets" and uploading, downloading and removing
"objects" from these buckets.

Options:
...
  -c FILE, --config=FILE
                        Config file name. Defaults to $HOME/.s3cfg

Похоже, s3cmd ищет свою конфигурацию файл в $HOME/.s3cfg, но поскольку ваш репозиторий находится в $GITHUB_WORKSPACE, ваш файл действительно находится по адресу: $GITHUB_WORKSPACE/.s3cfg

Я бы попытался использовать флаг -c с s3cmd, чтобы указать местоположение вашего .s3cfg файл. Пример:

      - name: Upload a simple text file to s3
        run: sudo s3cmd -c "$GITHUB_WORKSPACE/.s3cmd" put src/taka.txt s3://ashik-test -P
  • Кстати, я не уверен, почему вам нужно использовать sudo здесь, я думаю, вам это, вероятно, не нужно.
  • Совет: Вы Вы можете использовать действие GitHub «Отладка с помощью tmate», чтобы «копаться» внутри вашего бегуна / виртуальной машины, если вы не уверены, где что находится, или если вы хотите попробовать что-то в интерактивном режиме. https://github.com/marketplace/actions/debugging-with-tmate
...