Go to file
2024-10-30 11:14:46 +03:00
.github/workflows Up build action 2024-10-30 11:14:46 +03:00
README.md SEC-27:add scanners (#23) 2024-07-03 16:18:55 +03:00

java-workflow

В репозитории хранятся общие описания для сборок java/kotlin проектов. Сборка наших проектов бывает разной, в зависимости от типа собираемого проекта:

  • Service - Maven сборка сервиса с деплоем docker image в AWS ECR
  • swag - Maven сборка swagger с деплоем в Apache Maven registry на Github Packages

Чтобы начать использовать java-workflow в своем репозитории - добавьте в директорию /.github/workflows/ файлы build.yml и deploy.yml, файлов описания workflow не обязательно должно быть два, вы можете самостоятельно описать workflow с использованием java-workflow.

В репозитории есть инструменты для сканирования:

  • Semgrep - сканирует по дефолтным правилам

Чтобы начать использовать инструмент - добавьте в директорию файл semgrep-scan.yml.

Пример сборки и деплоя сервиса:

build.yml

name: Maven Build Artifact

on:
  pull_request:
    branches:
      - '*'

jobs:
  build:
    uses: empayre/java-workflow/.github/workflows/maven-service-build.yml@v1
    secrets:
      action-fetch-token: ${{ secrets.ACTIONS_FETCH_TOKEN }}
      github-pkg-ro-pat: ${{ secrets.GH_PACKAGES_RO_PAT2 }}
      github-pkg-ro-user: 'empayre-bot'

deploy.yml

name: Maven Deploy Artifact

on:
  push:
    branches:
      - 'master'
      - 'main'

jobs:
  deploy:
    uses: empayre/java-workflow/.github/workflows/maven-service-deploy.yml@v1
    secrets:
      action-fetch-token: ${{ secrets.ACTIONS_FETCH_TOKEN }}
      mm-webhook-url: ${{ secrets.MATTERMOST_WEBHOOK_URL }}
      github-pkg-ro-pat: ${{ secrets.GH_PACKAGES_RO_PAT2 }}
      github-pkg-ro-user: 'empayre-bot'
      aws-ecr-access_key: ${{ secrets.ECR_ACCESS_KEY }}
      aws-ecr-secret-key: ${{ secrets.ECR_SECRET_KEYS }}
      aws-region: ${{ secrets.AWS_REGION }}

Пример сборки и деплоя библотеки swag:

build.yml

name: Maven Build Artifact

on:
  pull_request:
    branches:
      - '*'

jobs:
  build:
    uses: empayre/java-workflow/.github/workflows/maven-swag-build.yml@v1
    with: 
      run-script-name: patch * 

* - для случая сборки на основе патчей (RFC 6902)

deploy.yml

name: Maven Deploy Artifact

on:
  push:
    branches:
      - 'master'
      - 'main'

jobs:
  deploy:
    uses: empayre/java-workflow/.github/workflows/maven-swag-deploy.yml@v1
    secrets:
      mm-webhook-url: ${{ secrets.MATTERMOST_WEBHOOK_URL }}

Пример использования инструмента:

semgrep-scan.yml

name: Run Semgrep

on:
  pull_request:
    branches:
      - '*'

jobs:
  scan:
    uses: empayre/java-workflow/.github/workflows/semgrep-scan.yml@v1
    secrets:
      mm-sa-wh-url: ${{ secrets.MATTERMOST_SA_WH_URL}}