2022-01-31 15:09:51 +00:00
# java-workflow
2022-01-31 14:44:01 +00:00
В репозитории хранятся общие описания для сборок java/kotlin проектов.
Сборка наших проектов бывает разной, в зависимости от типа собираемого проекта:
- Service - Maven сборка сервиса с деплоем docker image в docker hub
- Thrift - собираем thrift протокол и деплоим в maven central
- Library - собираем библиотеку и деплоим в maven central
- Swag - собираем openapi, деплоим в maven central и публикуем в github pages
2022-01-31 15:09:51 +00:00
Чтобы начать использовать java-workflow в своем репозитории - добавьте в директорию `/.github/workflows/` файлы
`build.yml` и `deploy.yml` , файлов описания workflow не обязательно должно быть два, вы можете самостоятельно описать workflow с использованием `java-workflow` .
2022-01-31 14:44:01 +00:00
Ниже приведен пример для `service` типа проекта. Аналогично и для других типов, изменяется только название файла и передаваемые параметры.
`build.yml`
```yaml
name: Build Maven Artifact
on:
pull_request:
branches:
- '*'
jobs:
build:
2022-01-31 15:09:51 +00:00
uses: valitydev/java-workflow/.github/workflows/maven-service-build.yml@v1
2022-01-31 14:44:01 +00:00
```
`deploy.yml`
```yaml
name: Deploy Docker Image
on:
push:
branches:
- 'master'
jobs:
build-and-deploy:
2022-01-31 15:09:51 +00:00
uses: valitydev/java-workflow/.github/workflows/maven-service-deploy.yml@v1
2022-01-31 14:44:01 +00:00
secrets:
github-token: ${{ secrets.GITHUB_TOKEN }}
mm-webhook-url: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
```
### Service
`build.yml`
```yaml
2022-01-31 15:09:51 +00:00
uses: valitydev/java-workflow/.github/workflows/maven-service-build.yml@v1
2022-01-31 14:44:01 +00:00
```
`deploy.yml`
```yaml
2022-01-31 15:09:51 +00:00
uses: valitydev/java-workflow/.github/workflows/maven-service-deploy.yml@v1
2022-02-24 05:13:55 +00:00
secrets:
github-token: ${{ secrets.GITHUB_TOKEN }}
mm-webhook-url: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
2022-01-31 14:44:01 +00:00
```
### Thrift
`build.yml`
```yaml
2022-01-31 15:09:51 +00:00
uses: valitydev/java-workflow/.github/workflows/maven-thrift-build.yml@v1
2022-01-31 14:44:01 +00:00
```
`deploy.yml`
```yaml
2022-01-31 15:09:51 +00:00
uses: valitydev/java-workflow/.github/workflows/maven-thrift-deploy.yml@v1
2022-02-24 05:13:55 +00:00
secrets:
server-username: ${{ secrets.OSSRH_USERNAME }}
server-password: ${{ secrets.OSSRH_TOKEN }}
deploy-secret-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
deploy-secret-key-password: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
mm-webhook-url: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
2022-01-31 14:44:01 +00:00
```
`erlang-build-verify.yml`
```yaml
2022-01-31 15:09:51 +00:00
uses: valitydev/java-workflow/.github/workflows/erlang-thrift-build.yml@v1
2022-01-31 14:44:01 +00:00
```
### Library
`build.yml`
```yaml
2022-01-31 15:09:51 +00:00
uses: valitydev/java-workflow/.github/workflows/maven-library-build.yml@v1
2022-01-31 14:44:01 +00:00
```
`deploy.yml`
```yaml
2022-01-31 15:09:51 +00:00
uses: valitydev/java-workflow/.github/workflows/maven-library-deploy.yml@v1
2022-02-24 05:13:55 +00:00
secrets:
server-username: ${{ secrets.OSSRH_USERNAME }}
server-password: ${{ secrets.OSSRH_TOKEN }}
deploy-secret-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
deploy-secret-key-password: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
mm-webhook-url: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
2022-01-31 14:44:01 +00:00
```
### Swag
`build.yml`
```yaml
2022-02-01 12:28:16 +00:00
uses: valitydev/java-workflow/.github/workflows/maven-swag-build.yml@v1
2022-01-31 14:44:01 +00:00
```
`deploy.yml`
```yaml
2022-01-31 15:09:51 +00:00
uses: valitydev/java-workflow/.github/workflows/maven-swag-deploy.yml@v1
2022-02-24 05:13:55 +00:00
secrets:
server-username: ${{ secrets.OSSRH_USERNAME }}
server-password: ${{ secrets.OSSRH_TOKEN }}
deploy-secret-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
deploy-secret-key-password: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
github-token: ${{ secrets.GITHUB_TOKEN }}
mm-webhook-url: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
```