1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-digdag

Клонировать/Скачать
README.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 14.03.2025 06:59 c6b8146

Digdag

CircleCI

CI

Документация

Пожалуйста, проверьте digdag.io и docs.digdag.io для установки и руководства пользователя.

Документация REST API доступна по адресу docs.digdag.io/api.

Примечания к выпускам

Список примечаний к выпускам находится здесь.

Разработка

Предварительные требования

  • JDK 8
  • Node.js 12.x

Установка Node.js с помощью nodebrew:

$ curl -L git.io/nodebrew | perl - setup
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bashrc
$ source ~/.bashrc
$ nodebrew install-binary v12.x
$ nodebrew use v12.x

Установка Node.js с помощью Homebrew на macOS:

$ brew install node
  • Python 3
    • sphinx
    • sphinx_rtd_theme
    • recommonmark

Запуск тестов

$ ./gradlew check

Отчет о покрытии тестами генерируется в digdag-*/build/reports/jacoco/test/html/index.html. Отчет Findbugs генерируется в digdag-*/build/reports/findbugs/main.html.

$ CI_ACCEPTANCE_TEST=true ./gradlew digdag-tests:test --info --tests acceptance.BuiltInVariablesIT

Чтобы выполнить тесты в подпроекте digdag-tests локально, полезной является опция tests, предоставляемая Gradle. Переменная окружения CI_ACCEPTANCE_TEST=true необходима для запуска digdag-tests.

Тестирование с использованием PostgreSQL

По умолчанию тест использует виртуальную память H2 базы данных. Для использования PostgreSQL установите следующие переменные окружения:``` $ export DIGDAG_TEST_POSTGRESQL="$(cat config/test_postgresql.properties)"


### Создание исполняемых файлов CLI

$ ./gradlew cli $ ./gradlew cli -PwithoutUi # сборка без встроенной графического интерфейса пользователя


(Если команда завершается ошибкой во время сборки UI из-за ошибок от команды `node`, вы можете попробовать добавить аргумент `-PwithoutUi` для исключения UI из пакета).

Это создает исполняемый файл в `pkg/`, например `pkg/digdag-$VERSION.jar`.

### Разработка digdag-ui

Сервер разработки Node.js полезен тем, что автоматически перезапускает изменения в исходном коде digdag-ui.

Во-первых, добавьте следующие строки в ~/.config/digdag/config и запустите сервер digdag:

server.http.headers.access-control-allow-origin = http://localhost:9000 server.http.headers.access-control-allow-headers = origin, content-type, accept, authorization, x-td-account-override, x-xsrf-token, cookie server.http.headers.access-control-allow-credentials = true server.http.headers.access-control-allow-methods = GET, POST, PUT, DELETE, OPTIONS, HEAD server.http.headers.access-control-max-age = 1209600


Затем запустите сервер разработки digdag-ui:

$ cd digdag-ui/ $ npm install $ npm run dev # запускает dev сервер на http://localhost:9000/


### Обновление документации REST API

Выполните эту команду, чтобы обновить файл документации REST API в digdag-docs/src/api/swagger.yaml.

./gradlew swaggerYaml # выгрузка файла swagger.yaml


Используйте опцию `--enable-swagger`, чтобы проверить текущий REST API Digdag.

$ ./gradlew cli $ ./pkg/digdag-<текущая версия>.jar server --memory --enable-swagger # Запуск сервера с опцией --enable-swagger $ docker run -dp 8080:8080 swaggerapi/swagger-ui # Запуск Swagger-UI в отдельной консоли $ open http://localhost:8080/?url=http://localhost:65432/api/swagger.json # Открытие api/swagger.json в Swagger-UI


Документы находятся в директории `digdag-docs/src`. Они создаются с помощью Sphinx.

Веб-сайт хостится на [www.digdag.io](http://www.digdag.io) с использованием GitHub Pages. Страницы создаются с помощью шага развертывания в `circle.yml` и автоматически пушатся в [ветке gh-pages репозитория digdag-docs](https://github.com/treasure-data/digdag-docs/tree/gh-pages).

Чтобы создать страницы и проверить их локально, выполните следующее руководство.

Создайте виртуальное окружение Python и установите зависимые библиотеки Python, включая Sphinx.

```sh
$ python3 -m venv .venv
$ source .venv/bin/activate
(.venv)$ pip install -r digdag-docs/requirements.txt -c digdag-docs/constraints.txt

После установки библиотек Python, вы можете создать страницы, выполнив следующую команду:

(.venv)$ ./gradlew site

Это может не всегда обновлять все необходимые файлы (Sphinx плохо управляет зависимостями обновлений). В этом случае, сначала выполните ./gradlew clean. Создает index.html в digdag-docs/build/html/index.html.

Разработка в средах разработки

IntelliJ IDEA

Дигдейг использует процессор аннотаций Java org.immutables:value. Соединение процессора аннотаций Java с системой сборки Gradle в IntelliJ IDEA иногда вызывает проблемы. В случае Дигдейга вы можете столкнуться с ошибками компиляции, такими как невозможно найти символ: класс ImmutableRestWorkflowDefinitionCollection. Поэтому мы рекомендуем следующее, чтобы избежать этих ошибок компиляции при разработке Дигдейга в среде разработки:1. Есть важная конфигурационная опция, которую следует активировать, чтобы полностью интегрировать IntelliJ со существующей конфигурацией сборки Gradle: опцию «Delegating IDE build/run actions to gradle» следует активировать.

image

Выпуск новой версии

Это для коммиттеров только.

Предварительные требования: Sonatype OSSRH

Вам нужна учетная запись в Sonatype OSSRH, и её следует настроить в вашем файле ~/.gradle/gradle.properties.

ossrhUsername=(ваш логин Sonatype OSSRH)
ossrhPassword=(ваш пароль Sonatype OSSRH)

Предварительные требования: подписи PGP

Вам нужны ваши подписи PGP для выпуска артефактов в Maven Central, и вам следует настроить Gradle для использования вашего ключа для подписи. Настройте это в вашем файле ~/.gradle/gradle.properties.

signing.gnupg.executable=gpg
signing.gnupg.useLegacyGpg=false
signing.gnupg.keyName=(последние 8 символов вашего ключа Id)
signing.gnupg.passphrase=(пароль, используемый для защиты вашего приватного ключа)

Процесс выпускаКак указано в предварительных требованиях, нам требуется использовать JDK 8 в этом процессе:

  1. Выполните команду git pull upstream master --tags.
  2. Выполните команду ./gradlew setVersion -Pto=<версия>.
  3. Запишите заметки о выпуске в файл releases/release-<версия>.rst. Он должен содержать хотя бы версию (первая строка) и дату выпуска (последняя строка).
  4. Выполните команду ./gradlew clean cli site check releaseCheck.
  5. Создайте ветку выпуска. git checkout -b release_v<версия> и сделайте коммит.
  6. Отправьте ветку выпуска на origin и создайте запрос на слияние (PR).
  7. После того как PR будет слит в мастер, переключитесь на мастер и получите последнюю версию upstream/master.
  8. Повторно выполните команду ./gradlew clean cli site check releaseCheck.
  9. Если это прошло успешно, выполните команду ./gradlew release.
  10. Создайте тег git tag -a v<версия> и отправьте его git push upstream v<версия>.
  11. Создайте выпуск в GitHub releases.
  12. Загрузите pkg/digdag-<версия>.jar в выпуск.
  13. Спустя несколько минут выполните команду digdag selfupdate и подтвердите версию. Если основной версии была увеличена, также обновите version = и release = в digdag-docs/src/conf.py.Если вы эксперт, пропустите шаги с 5. до 7. и сразу обновите главную ветку.

Послепроцесс нового выпуска

Вы также должны выполнить следующие шаги после выпуска новой версии.

  1. Создайте следующую версию снапшота, запустив ./gradlew setVersion -Pto=<следующая версия>-SNAPSHOT.
  2. Отправьте изменения в главную ветку.

Выпуск версии SNAPSHOT

./gradlew releaseSnapshot

Примечание Поддержка выпуска снапшотов в настоящее время недоступна.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-digdag.git
git@api.gitlife.ru:oschina-mirror/mirrors-digdag.git
oschina-mirror
mirrors-digdag
mirrors-digdag
master