Дрон ci публиковать сгенерированный латекс pdf

На самом деле я использую Трэвис, но я хочу перейти на дрон.

Для всех текстовых документов я использую небольшой Makefile с контейнером, чтобы сгенерировать мой pdf-файл и развернуть его в своем хранилище.

Но так как я использую gitea, я хочу настроить конвейер интеграции с помощью drone, но я не знаю, как я могу настроить .drone.yml развернуть мой файл PDF на каждом выпуске тега.

На самом деле я использую следующее .drone.yml и я рад сказать, что на данный момент процесс сборки работает нормально.

clone:
  git:
    image: plugins/git
    tags: true

pipeline:
  pdf:
    image: volkerraschek/docker-latex:latest
    pull: true
    commands:
    - make

а это мой Makefile

# Docker Image
IMAGE := volkerraschek/docker-latex:latest

# Input tex-file and output pdf-file
FILE := index
TEX_NAME := ${FILE}.tex
PDF_NAME := ${FILE}.pdf

latexmk:
    latexmk \
        -shell-escape \
        -synctex=1 \
        -interaction=nonstopmode \
        -file-line-error \
        -pdf ${TEX_NAME}

docker-latexmk:
    docker run \
        --rm \
        --user="$(shell id -u):$(shell id -g)" \
        --net="none" \
        --volume="${PWD}:/data" ${IMAGE} \
        make latexmk

Какие теги и условия отсутствуют в моем drone.yml для развертывания моего index.pdf как выпуска в gitea, когда я нажимаю новый тег git?

Volker

1 ответ

У меня есть эта настройка на моей паре gitea / drone. Это MWE моего .drone.yml:

pipeline:
  build:
    image: tianon/latex
    commands:
      - pdflatex <filename.tex>
  gitea_release:
    image: plugins/gitea-release
    base_url: <gitea domain>
    secrets: [gitea_token]
    files: <filename.pdf>
    when:
      event: tag

Таким образом, вместо настройки сборки докера в Makefile, мы добавляем шаг, используя изображение docker с latex, компилируем pdf и используем шаг конвейера для выпуска.

Вам также нужно будет настроить репозиторий дронов для запуска сборок по тегам и установить используемый токен API gitea. Чтобы установить токен API, вы можете использовать интерфейс командной строки:

$ drone secret add <org/repo> --name gitea_token --value <token value> --image plugins/gitea-release

Вы можете настроить репозиторий Drone для запуска сборок в настройках репозитория в веб-интерфейсе.

Обратите внимание, что вам также, вероятно, придется разрешить *.pdf вложения в настройках вашего gitea, так как они запрещены по умолчанию. В твоей гите app.ini добавьте это в раздел вложения:

[attachment]
ENABLED = true
PATH = /data/gitea/attachments
MAX_SIZE = 10
ALLOWED_TYPES = */*

В дополнение к ответу Гейба, если вы используете обратный прокси-сервер NGINX, вам также может потребоваться разрешить загрузку файлов большего размера в свой nginx.conf. (Это относится ко всем типам файлов, а не только к.pdf)

server {

  [ ... ]

  location / {
    client_max_body_size 10M;      # add this line
    proxy_pass http://gitea:3000;
  }

}

Это устранило проблему для меня.

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