GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻ†āĻŽāĻžāĻ•ā§‡ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ‡ āĻœāĻžāĻ­āĻžāĻ¤ā§‡ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧāĨ¤ āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻāĻŸāĻŋ āĻ“āĻĒā§‡āĻ¨ āĻ¸ā§‹āĻ°ā§āĻ¸, āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻāĻŸāĻŋ āĻ¨āĻ¯āĻŧāĨ¤ āĻ†āĻŽāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻ†āĻŽāĻžāĻ° āĻ•āĻŋāĻ›ā§ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻŸā§āĻ°ā§āĻ¯āĻžāĻ­āĻŋāĻ¸-āĻ¸āĻŋāĻ†āĻ‡ āĻāĻŦāĻ‚ āĻŸāĻŋāĻŽāĻ¸āĻŋāĻŸāĻŋ āĻĨā§‡āĻ•ā§‡ āĻ—āĻŋāĻŸāĻšāĻžāĻŦ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ‡ āĻāĻŸāĻŋ āĻĨā§‡āĻ•ā§‡ āĻŦā§‡āĻ°āĻŋāĻ¯āĻŧā§‡ āĻāĻ¸ā§‡āĻ›ā§‡āĨ¤

āĻ†āĻŽāĻ°āĻž āĻ•āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻšāĻŦā§‡?

āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻĻāĻ°āĻ•āĻžāĻ° āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻŦ, āĻ†āĻ¸ā§āĻ¨ āĻ¸ā§āĻĒā§āĻ°āĻŋāĻ‚ āĻŦā§āĻŸ / āĻœāĻžāĻ­āĻž 11 / āĻŽā§āĻ¯āĻžāĻ­ā§‡āĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻ›ā§‹āĻŸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋāĨ¤ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋāĻ° āĻ‰āĻĻā§āĻĻā§‡āĻļā§āĻ¯ā§‡, āĻ†āĻŽāĻ°āĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¯ā§āĻ•ā§āĻ¤āĻŋāĻ¤ā§‡ āĻŽā§‹āĻŸā§‡āĻ“ āĻ†āĻ—ā§āĻ°āĻšā§€ āĻšāĻŦ āĻ¨āĻž; āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ° āĻšāĻžāĻ°āĻĒāĻžāĻļā§‡āĻ° āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ—ā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ, āĻ¤āĻžāĻ‡ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ REST API āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛āĻžāĻ° āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻšāĻŦā§‡āĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻāĻ–āĻžāĻ¨ā§‡ āĻ‰āĻ¤ā§āĻ¸ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨: github.com/antkorwin/github-actions āĻāĻ•āĻŸāĻŋ āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ āĻāĻ‡ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŸāĻžāĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ.

āĻœāĻŋāĻ°āĻž āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻ•āĻ˛ā§āĻĒāĻ¨āĻž

āĻāĻŸāĻž āĻŦāĻ˛āĻžāĻ° āĻŽāĻ¤ā§‹ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ JIRA āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ‡āĻ¸ā§āĻ¯ā§ āĻŸā§āĻ°ā§āĻ¯āĻžāĻ•āĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ, āĻ¤āĻžāĻ‡ āĻ†āĻ¸ā§āĻ¨ āĻāĻ‡ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻŦā§‹āĻ°ā§āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻŋ:

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻāĻ•āĻŸā§ āĻĒāĻ°ā§‡ āĻ†āĻŽāĻ°āĻž JIRA āĻāĻŦāĻ‚ GitHub āĻ¸āĻ‚āĻŽāĻŋāĻļā§āĻ°āĻŖā§‡ āĻ•ā§€ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻ…āĻĢāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻžāĻŦāĨ¤

āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ¸āĻŽāĻžāĻŦā§‡āĻļ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ

āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻŽā§āĻ¯āĻžāĻ­ā§‡āĻ¨ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻžāĻ‡ āĻāĻŸāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻŦā§‡āĻļ āĻ¸āĻšāĻœ, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¯āĻž āĻĻāĻ°āĻ•āĻžāĻ° āĻ¤āĻž āĻšāĻ˛ mvn āĻ•ā§āĻ˛āĻŋāĻ¨ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĨ¤

āĻ—āĻŋāĻĨā§āĻŦ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻŸāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻĢā§āĻ˛ā§‹ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°ā§‡ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ yml āĻĢāĻžāĻ‡āĻ˛ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ†āĻŽāĻŋ āĻŦāĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻ¨āĻž āĻ¯ā§‡ āĻ†āĻŽāĻŋ "yml āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚" āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°āĻŋ, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻ•ā§€ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ - āĻ†āĻŽāĻ°āĻž āĻāĻŸāĻŋ .github/ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻĢā§āĻ˛ā§‹/ āĻĢāĻžāĻ‡āĻ˛ build.yml-āĻ āĻ•āĻ°āĻŋ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ° āĻļāĻžāĻ–āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻŦ:

name: Build

on:
  pull_request:
    branches:
      - '*'
  push:
    branches:
      - 'master'

jobs:
  build:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v1
      - name: set up JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 1.11
      - name: Maven Package
        run: mvn -B clean package -DskipTests

on — āĻāĻŸāĻŋ āĻ¸ā§‡āĻ‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸāĻŸāĻŋ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻšāĻŦā§‡ā§ˇ

āĻ…āĻ¨: pull_request/push — āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§‡āĻ•āĻŦāĻžāĻ° āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ§āĻžāĻ•ā§āĻ•āĻž āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻāĻŦāĻ‚ āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ˛ā§‡ āĻāĻ‡ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻĢā§āĻ˛ā§‹ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻž āĻĻāĻ°āĻ•āĻžāĻ°āĨ¤

āĻ¨āĻŋāĻŽā§āĻ¨ā§‡ āĻ•āĻžāĻœā§‡āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ˛ (āĻ•āĻžāĻœ) āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻžāĻ° āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒ (āĻ§āĻžāĻĒ) āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ•āĻžāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯āĨ¤

āĻ‰āĻĒāĻ° āĻ¸āĻžā§āĻšāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ - āĻāĻ–āĻžāĻ¨ā§‡ āĻ†āĻŽāĻ°āĻž āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ“āĻāĻ¸ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ, āĻ†āĻļā§āĻšāĻ°ā§āĻ¯āĻœāĻ¨āĻ•āĻ­āĻžāĻŦā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻŽā§āĻ¯āĻžāĻ• āĻ“āĻāĻ¸āĻ“ āĻšāĻ¯āĻŧāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ¤āĻŦā§‡ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻāĻŸāĻŋ āĻŦā§‡āĻļ āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛ (āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ā§‡āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ)āĨ¤

āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ¸āĻŽā§‚āĻš āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§‡āĻ¯āĻŧ, āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨/āĻ¸ā§‡āĻŸāĻ†āĻĒ-āĻœāĻžāĻ­āĻž āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ†āĻŽāĻ°āĻž Java 11 āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻŦā§‡āĻļ āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°āĻŋāĨ¤

āĻāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§‡ āĻ¸āĻ™ā§āĻ—ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻŸāĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ†āĻŽāĻ°āĻž āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻŋ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ, āĻŽā§‚āĻ˛āĻ¤ āĻāĻ‡ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸāĻ—ā§āĻ˛āĻŋ āĻ¯āĻž āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ā§‡ āĻĒāĻžāĻ āĻžāĻ¨ā§‹ āĻšāĻŦā§‡āĨ¤

āĻ¯āĻž āĻŦāĻžāĻ•āĻŋ āĻ†āĻ›ā§‡ āĻ¤āĻž āĻšāĻ˛ āĻŽāĻžāĻ­ā§‡āĻ¨ā§‡ āĻĒā§āĻ°āĻœā§‡āĻ•ā§āĻŸ āĻŦāĻŋāĻ˛ā§āĻĄ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹: run: mvn -B clean package āĻĒāĻ¤āĻžāĻ•āĻž -B āĻŦāĻ˛ā§‡ āĻ¯ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¨-āĻ‡āĻ¨ā§āĻŸāĻžāĻ°ā§‡āĻ•ā§āĻŸāĻŋāĻ­ āĻŽā§‹āĻĄ āĻĻāĻ°āĻ•āĻžāĻ° āĻ¯āĻžāĻ¤ā§‡ āĻŽāĻžāĻ­ā§‡āĻ¨ āĻšāĻ āĻžā§Ž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•āĻŋāĻ›ā§ āĻœāĻŋāĻœā§āĻžāĻžāĻ¸āĻž āĻ•āĻ°āĻ¤ā§‡ āĻ¨āĻž āĻšāĻžāĻ¯āĻŧ

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻĻāĻžāĻ°ā§āĻŖ! āĻāĻ–āĻ¨, āĻ¯āĻ¤āĻŦāĻžāĻ° āĻ†āĻĒāĻ¨āĻŋ āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻŦāĻĻā§āĻ§ āĻšāĻ¨, āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ¤ā§ˆāĻ°āĻŋ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧāĨ¤

āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ˛āĻžā§āĻš

āĻ¸āĻŽāĻžāĻŦā§‡āĻļ āĻ­āĻžāĻ˛, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦā§‡, āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•āĻžāĻœ āĻ¨āĻžāĨ¤ āĻ…āĻ¤āĻāĻŦ, āĻĒāĻ°ā§‡āĻ° āĻ§āĻžāĻĒ āĻšāĻ˛ āĻŸā§‡āĻ¸ā§āĻŸ āĻ°āĻžāĻ¨ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻžāĨ¤ āĻ‰āĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻ–āĻ¨ PR āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°ā§‡āĻ¨ āĻ¤āĻ–āĻ¨ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ¯āĻŧ āĻ‰āĻ¤ā§āĻ¤ā§€āĻ°ā§āĻŖ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻŦā§‡āĻļ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• - āĻ†āĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻļā§āĻšāĻŋāĻ¤āĻ­āĻžāĻŦā§‡ āĻœāĻžāĻ¨ā§‡āĻ¨ āĻ¯ā§‡ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ—ā§āĻ˛āĻŋ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ•ā§‡āĻ‰ āĻŽāĻžāĻ°ā§āĻœ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻļāĻžāĻ–āĻž āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻ­ā§āĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤

āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻšāĻžāĻ˛āĻžāĻŦ āĻāĻŦāĻ‚ āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•ā§€āĻ­ā§‚āĻ¤ āĻ•āĻ°āĻŦ āĻāĻŦāĻ‚ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻ†āĻŽāĻ°āĻž āĻ•ā§‹āĻĄ-āĻ•āĻ­āĻžāĻ°ā§‡āĻœā§‡āĻ° āĻ‰āĻĒāĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻŦā§‡āĻĻāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻŦāĨ¤

name: Build

on:
  pull_request:
    branches:
      - '*'
  push:
    branches:
      - 'master'

jobs:
  build:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v1
      - name: set up JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 1.11
      - name: Maven Verify
        run: mvn -B clean verify
      - name: Test Coverage
        uses: codecov/codecov-action@v1
        with:
          token: ${{ secrets.CODECOV_TOKEN }}

āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ—ā§āĻ˛āĻŋ āĻ•āĻ­āĻžāĻ° āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻŽāĻŋ jacoco āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻ¯ā§‹āĻ—ā§‡ āĻ•ā§‹āĻĄāĻ•āĻ­ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋāĨ¤ āĻ•ā§‹āĻĄāĻ•āĻ­ā§‡āĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŸāĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨:

${{ secrets.CODECOV_TOKEN }} — āĻ†āĻŽāĻ°āĻž āĻāĻ‡ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖāĻŸāĻŋ āĻāĻ•āĻžāĻ§āĻŋāĻ•āĻŦāĻžāĻ° āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻŦ, āĻ¸āĻŋāĻ•ā§āĻ°ā§‡āĻŸāĻ¸ āĻšāĻ˛ āĻ—āĻŋāĻŸāĻšāĻžāĻŦā§‡ āĻ—ā§‹āĻĒāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž, āĻ†āĻŽāĻ°āĻž āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ/āĻŸā§‹āĻ•ā§‡āĻ¨/āĻšā§‹āĻ¸ā§āĻŸ/āĻ‡āĻ‰āĻ†āĻ°āĻāĻ˛ āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĄā§‡āĻŸāĻž āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻ¯āĻž āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ•ā§‹āĻĄ āĻŦā§‡āĻ¸ā§‡ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻ—āĻŋāĻŸāĻšāĻžāĻŦā§‡āĻ° āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ā§‡ āĻ—ā§‹āĻĒāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻžāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§€āĻ˛ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ codecov.io āĻ—āĻŋāĻŸāĻšāĻžāĻŦā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ā§‡āĻ° āĻĒāĻ°ā§‡, āĻāĻ•āĻŸāĻŋ āĻ¸āĻ°ā§āĻŦāĻœāĻ¨ā§€āĻ¨ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ•ā§‡āĻŦāĻ˛ āĻāĻ‡āĻ°āĻ•āĻŽ āĻāĻ•āĻŸāĻŋ āĻ˛āĻŋāĻ™ā§āĻ• āĻ…āĻ¨ā§āĻ¸āĻ°āĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡: GitHub āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ° āĻ¨āĻžāĻŽ/[āĻ°ā§‡āĻĒā§‹ āĻ¨āĻžāĻŽ]āĨ¤ āĻāĻ•āĻŸāĻŋ āĻŦā§āĻ¯āĻ•ā§āĻ¤āĻŋāĻ—āĻ¤ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛āĻ“ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡; āĻāĻŸāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ—āĻŋāĻĨā§āĻŦā§‡ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ¤ā§‡ āĻ•ā§‹āĻĄāĻ•āĻ­ āĻ…āĻ§āĻŋāĻ•āĻžāĻ° āĻĻāĻŋāĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

POM āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻœā§āĻ¯āĻžāĻ•ā§‹āĻ•ā§‹ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨:

<plugin>
	<groupId>org.jacoco</groupId>
	<artifactId>jacoco-maven-plugin</artifactId>
	<version>0.8.4</version>
	<executions>
		<execution>
			<goals>
				<goal>prepare-agent</goal>
			</goals>
		</execution>
		<!-- attached to Maven test phase -->
		<execution>
			<id>report</id>
			<phase>test</phase>
			<goals>
				<goal>report</goal>
			</goals>
		</execution>
	</executions>
</plugin>
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-surefire-plugin</artifactId>
	<version>2.22.2</version>
	<configuration>
		<reportFormat>plain</reportFormat>
		<includes>
			<include>**/*Test*.java</include>
			<include>**/*IT*.java</include>
		</includes>
	</configuration>
</plugin>

āĻāĻ–āĻ¨ āĻ•ā§‹āĻĄāĻ•āĻ­ āĻŦāĻŸ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡ āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°āĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ•āĻ­āĻžāĻ°ā§‡āĻœ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ—ā§āĻ°āĻžāĻĢ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻŦā§‡:

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻ• āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻ¯āĻžāĻ•

āĻ†āĻŽāĻžāĻ° āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ— āĻ“āĻĒā§‡āĻ¨ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡ āĻ†āĻŽāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻŋāĻ• āĻ•ā§‹āĻĄ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§‹āĻ¨āĻžāĻ° āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ, āĻŸā§āĻ°ā§āĻ¯āĻžāĻ­āĻŋāĻ¸-āĻ¸āĻŋāĻ†āĻ‡-āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻŦā§‡āĻļ āĻ¸āĻšāĻœāĨ¤ āĻ¤āĻžāĻ‡ āĻāĻ•āĻ‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ā§‡ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¯ā§ŒāĻ•ā§āĻ¤āĻŋāĻ• āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒāĨ¤ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻŽāĻžāĻ°ā§āĻ•ā§‡āĻŸ āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻœāĻŋāĻ¨āĻŋāĻ¸, āĻ¤āĻŦā§‡ āĻāĻŦāĻžāĻ° āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻ•ā§‡ āĻ•āĻŋāĻ›ā§āĻŸāĻž āĻšāĻ¤āĻžāĻļ āĻ•āĻ°ā§‡āĻ›ā§‡, āĻ•āĻžāĻ°āĻŖ āĻ…āĻ­ā§āĻ¯āĻžāĻ¸ā§‡āĻ° āĻŦāĻžāĻ‡āĻ°ā§‡ āĻ†āĻŽāĻŋ āĻ†āĻŽāĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨āĻŸāĻŋ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¯āĻŧā§‡āĻ›āĻŋ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻĢā§āĻ˛ā§‹āĻ¤ā§‡ āĻ¯ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻĻā§‡āĻ–āĻž āĻ—ā§‡āĻ˛ āĻ¯ā§‡ āĻ¸ā§‹āĻ¨āĻžāĻ° āĻŽā§āĻ¯āĻžāĻ­ā§‡āĻ¨ āĻŦāĻž āĻ—ā§āĻ°ā§‡āĻĄāĻ˛-āĻ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻŦāĻŋāĻļā§āĻ˛ā§‡āĻˇāĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻž āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ•āĻ°ā§‡ āĻ¨āĻžāĨ¤ āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻāĻŸāĻŋ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡ āĻ˛ā§‡āĻ–āĻž āĻ†āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•ā§‡ āĻĒāĻĄāĻŧā§‡?!

āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ•āĻ°ā§āĻŽā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ¸āĻŽā§āĻ­āĻŦ āĻ¨āĻ¯āĻŧ, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻāĻŽāĻ­āĻŋāĻāĻ¨ āĻĒā§āĻ˛āĻžāĻ—āĻ‡āĻ¨ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻŸāĻŋ āĻ•āĻ°āĻŦ:

name: SonarCloud

on:
  push:
    branches:
      - master
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  sonarcloud:
    runs-on: ubuntu-16.04
    steps:
      - uses: actions/checkout@v1
      - name: Set up JDK
        uses: actions/setup-java@v1
        with:
          java-version: 1.11
      - name: Analyze with SonarCloud
#       set environment variables:
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
#       run sonar maven plugin:
        run: mvn -B verify sonar:sonar -Dsonar.projectKey=antkorwin_github-actions -Dsonar.organization=antkorwin-github -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=$SONAR_TOKEN -Dsonar.coverage.jacoco.xmlReportPaths=./target/site/jacoco/jacoco.xml

SONAR_TOKEN -āĻ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§‡ sonarcloud.io āĻāĻŦāĻ‚ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻŸāĻŋ āĻ—ā§‹āĻĒāĻ¨ā§‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ GITHUB_TOKEN - āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻ¯āĻž āĻ—āĻŋāĻŸāĻšāĻžāĻŦ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡, āĻ¯āĻžāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§‡ āĻ¸ā§‹āĻ¨āĻžāĻ°āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ [āĻŦāĻŸ] āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋ āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻ—āĻŋāĻŸā§‡ āĻ˛āĻ— āĻ‡āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻ•ā§āĻˇāĻŽ āĻšāĻŦā§‡āĨ¤

Dsonar.projectKey — āĻ¸ā§‹āĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻ¨āĻžāĻŽ, āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ¸ā§‡āĻŸāĻŋāĻ‚āĻ¸ā§‡ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

Dsonar.organization — āĻ—āĻŋāĻŸāĻšāĻžāĻŦ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻ‚āĻ¸ā§āĻĨāĻžāĻ° āĻ¨āĻžāĻŽāĨ¤

āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻŸāĻžāĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻ¸ā§‹āĻ¨āĻžāĻ°āĻ•ā§āĻ˛āĻžāĻ‰āĻĄ [āĻŦāĻŸ] āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ā§‡ āĻ†āĻ¸āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŋ:

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ¨āĻŋāĻ• āĻ…āĻ¤āĻŋāĻ•ā§āĻ°āĻŽ

āĻŦāĻŋāĻ˛ā§āĻĄ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻ†āĻ¸ā§āĻ¨ āĻĻā§‡āĻ–āĻŋ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻ—āĻŋāĻŸāĻšāĻžāĻŦ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ°āĻŋāĻ˛āĻŋāĻœ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻŽā§‡āĻ¨ā§āĻŸāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻ¸āĻšāĻœ āĻ•āĻ°ā§‡ āĻ¤ā§āĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

āĻ•āĻ°ā§āĻŽāĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻ†āĻŽāĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻāĻŽāĻ¨ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻžāĻ° āĻ•ā§‹āĻĄ āĻŦā§‡āĻ¸ āĻŦāĻŋāĻŸāĻŦāĻžāĻ•ā§‡āĻŸā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ (āĻ¸āĻŦāĻ•āĻŋāĻ›ā§āĻ‡ āĻ¸ā§‡āĻ‡ āĻ—āĻ˛ā§āĻĒā§‡āĻ° āĻŽāĻ¤ā§‹ "āĻ†āĻŽāĻŋ āĻĻāĻŋāĻ¨ā§‡ āĻŦāĻŋāĻŸāĻŦāĻžāĻ•ā§‡āĻŸ āĻ˛āĻŋāĻ–āĻŋ, āĻ°āĻžāĻ¤ā§‡ āĻ—āĻŋāĻŸāĻšāĻžāĻŦā§‡ āĻ•āĻŽāĻŋāĻŸ āĻ•āĻ°āĻŋ")āĨ¤ āĻĻā§āĻ°ā§āĻ­āĻžāĻ—ā§āĻ¯āĻŦāĻļāĻ¤, āĻŦāĻŋāĻŸāĻŦāĻžāĻ•ā§‡āĻŸā§‡āĻ° āĻŦāĻŋāĻ˛ā§āĻŸ-āĻ‡āĻ¨ āĻ°āĻŋāĻ˛āĻŋāĻœ āĻŽā§āĻ¯āĻžāĻ¨ā§‡āĻœāĻŽā§‡āĻ¨ā§āĻŸ āĻŸā§āĻ˛ āĻ¨ā§‡āĻ‡āĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž, āĻ•āĻžāĻ°āĻŖ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ°āĻŋāĻ˛āĻŋāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¸āĻ™ā§āĻ—āĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻˇā§āĻ āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ°āĻŋāĻ˛āĻŋāĻœā§‡āĻ° āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ¨āĻŋāĻ•ā§āĻˇā§‡āĻĒ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻŽāĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻžāĻ¸āĻžāĻĻāĻ—ā§āĻ˛āĻŋ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻœāĻŋāĻ°āĻžāĻ° āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ, āĻ­āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§‡ āĻ•āĻŽāĻŋāĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻ•āĻŸāĻŋ āĻ­ā§āĻ˛ āĻ•āĻ°āĻžāĻ° āĻ…āĻ¨ā§‡āĻ• āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŋāĻ›ā§ āĻ­ā§āĻ˛ā§‡ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻŦāĻž āĻāĻŽāĻ¨ āĻ•āĻŋāĻ›ā§ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻ—āĻ¤āĻŦāĻžāĻ° āĻĒā§āĻ°āĻ•āĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻāĻŸāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻŸ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ•ā§‡ āĻ•ā§€ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻļā§āĻ°ā§‡āĻŖā§€āĻŦāĻĻā§āĻ§ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ - āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻŦāĻž āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ— āĻ¸āĻ‚āĻļā§‹āĻ§āĻ¨, āĻŦāĻž āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž, āĻŦāĻž āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ—āĻ¤ āĻ•āĻŋāĻ›ā§āĨ¤

āĻ•āĻŋāĻ­āĻžāĻŦā§‡ GitHub āĻ•āĻ°ā§āĻŽ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡? āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ - āĻ°āĻŋāĻ˛āĻŋāĻœ āĻĄā§āĻ°āĻžāĻĢāĻŸāĻžāĻ°, āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ°āĻŋāĻ˛āĻŋāĻœ āĻ¨ā§‹āĻŸ āĻĢāĻžāĻ‡āĻ˛ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻŦāĻŋāĻ­āĻžāĻ— āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŦāĻ‚ āĻ°āĻŋāĻ˛āĻŋāĻœ āĻ¨ā§‹āĻŸ āĻĢāĻžāĻ‡āĻ˛ā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ—ā§‹āĻˇā§āĻ ā§€āĻŦāĻĻā§āĻ§ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ:

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻāĻ•āĻŸāĻŋ āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ (.github/release-drafter.yml):

name-template: 'v$NEXT_PATCH_VERSION'
tag-template: 'v$NEXT_PATCH_VERSION'
categories:
  - title: ' New Features'
    labels:
      - 'type:features'
# в ŅŅ‚Ņƒ ĐēĐ°Ņ‚ĐĩĐŗĐžŅ€Đ¸ŅŽ ŅĐžĐąĐ¸Ņ€Đ°ĐĩĐŧ вŅĐĩ PR Ņ ĐŧĐĩŅ‚ĐēОК type:features

  - title: ' Bugs Fixes'
    labels:
      - 'type:fix'
# Đ°ĐŊĐ°ĐģĐžĐŗиŅ‡ĐŊĐž Đ´ĐģŅ ĐŧĐĩŅ‚Đēи type:fix и Ņ‚.Đ´.

  - title: ' Documentation'
    labels:
      - 'type:documentation'

  - title: ' Configuration'
    labels:
      - 'type:config'

change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
template: |
  ## Changes
  $CHANGES

āĻāĻ•āĻŸāĻŋ āĻ–āĻ¸āĻĄāĻŧāĻž āĻ°āĻŋāĻ˛āĻŋāĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ¯ā§‹āĻ— āĻ•āĻ°ā§āĻ¨ (.github/workflows/release-draft.yml):

name: "Create draft release"

on:
  push:
    branches:
      - master

jobs:
  update_draft_release:
    runs-on: ubuntu-18.04
    steps:
      - uses: release-drafter/release-drafter@v5
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

āĻāĻ–āĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ°āĻŋāĻ˛āĻŋāĻœ āĻ¨ā§‹āĻŸā§‡ āĻ¸āĻ‚āĻ—ā§āĻ°āĻš āĻ•āĻ°āĻž āĻšāĻŦā§‡ - āĻŽā§āĻ¯āĻžāĻœāĻŋāĻ•!

āĻāĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻļā§āĻ¨ āĻ‰āĻ āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡: āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻ°āĻž āĻ¯āĻĻāĻŋ āĻĒāĻŋāĻ†āĻ°-āĻ āĻŸā§āĻ¯āĻžāĻ— āĻĻāĻŋāĻ¤ā§‡ āĻ­ā§āĻ˛ā§‡ āĻ¯āĻžāĻ¨? āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻāĻŸāĻŋ āĻ•ā§‹āĻ¨ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡ āĻ°āĻžāĻ–āĻž āĻšāĻŦā§‡ āĻ¤āĻž āĻĒāĻ°āĻŋāĻˇā§āĻ•āĻžāĻ° āĻ¨āĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ†āĻŦāĻžāĻ° āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒāĻŋāĻ†āĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ†āĻ˛āĻžāĻĻāĻžāĻ­āĻžāĻŦā§‡ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻŽā§‹āĻ•āĻžāĻŦā§‡āĻ˛āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻŽāĻ°āĻž āĻ…āĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ - āĻ˛ā§‡āĻŦā§‡āĻ˛ āĻ¯āĻžāĻšāĻžāĻ‡āĻ•āĻžāĻ°ā§€ - āĻāĻŸāĻŋ āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡ āĻŸā§āĻ¯āĻžāĻ—ā§‡āĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡āĨ¤ āĻ¯āĻĻāĻŋ āĻ•ā§‹āĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻŸā§āĻ¯āĻžāĻ— āĻ¨āĻž āĻĨāĻžāĻ•ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻšā§‡āĻ• āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡ āĻāĻ‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻŦāĨ¤

name: "Verify type labels"

on:
  pull_request:
    types: [opened, labeled, unlabeled, synchronize]

jobs:
  triage:
    runs-on: ubuntu-18.04
    steps:
      - uses: zwaldowski/match-label-action@v2
        with:
          allowed: 'type:fix, type:features, type:documentation, type:tests, type:config'

āĻāĻ–āĻ¨ āĻ¯ā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻĒā§āĻ˛-āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻŸā§āĻ¯āĻžāĻ—āĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻŸāĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻž āĻ†āĻŦāĻļā§āĻ¯āĻ•: type:fix, type:features, type:documentation, type:tests, type:configāĨ¤

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻŸāĻžāĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻŸā§€āĻ•āĻž

āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ°ā§€ āĻ•āĻžāĻœā§‡āĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻ¤āĻžāĻ‡ āĻ˛ā§‡āĻŦā§‡āĻ˛āĻžāĻ°ā§‡āĻ° āĻŽāĻ¤ā§‹ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻž āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨, āĻāĻŸāĻŋ āĻĒāĻŋāĻ†āĻ°-āĻ āĻŸā§āĻ¯āĻžāĻ— āĻ°āĻžāĻ–ā§‡ āĻ¯āĻžāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ¤ā§‡ āĻĢāĻžāĻ‡āĻ˛āĻ—ā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻ§āĻžāĻ°āĻŖ āĻ•āĻ°ā§‡ āĻāĻŽāĻ¨ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻŸāĻžāĻ¨ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ•ā§‡ āĻ†āĻŽāĻ°āĻž [āĻŦāĻŋāĻ˛ā§āĻĄ] āĻšāĻŋāĻ¸ā§‡āĻŦā§‡ āĻšāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ .github/workflow.

āĻāĻŸāĻŋ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻŦā§‡āĻļ āĻ¸āĻšāĻœ:

name: "Auto-assign themes to PR"

on:
  - pull_request

jobs:
  triage:
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/labeler@v2
        with:
          repo-token: ${{ secrets.GITHUB_TOKEN }}

āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¯āĻžāĻ¤ā§‡ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ āĻāĻŦāĻ‚ āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻšāĻŋāĻ āĻŋāĻĒāĻ¤ā§āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ:

theme:build:
  - ".github/**"
  - "pom.xml"
  - ".travis.yml"
  - ".gitignore"
  - "Dockerfile"

theme:code:
  - "src/main/*"

theme:tests:
  - "src/test/*"

theme:documentation:
  - "docs/**"

theme:TRASH:
  - ".idea/**"
  - "target/**"

āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§€āĻ¯āĻŧ āĻ˛ā§‡āĻŦā§‡āĻ˛ā§‡āĻ° āĻ‰āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§‡ āĻāĻŽāĻ¨ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻĒā§āĻ˛ āĻ°āĻŋāĻ•ā§‹āĻ¯āĻŧā§‡āĻ¸ā§āĻŸā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ˛ā§‡āĻŦā§‡āĻ˛ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°ā§‡ āĻāĻŽāĻ¨ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻĒā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻŽāĻŋ āĻ¸āĻĢāĻ˛ āĻšāĻ‡āĻ¨āĻŋ; āĻŽā§āĻ¯āĻžāĻš-āĻ˛ā§‡āĻŦā§‡āĻ˛ āĻŦāĻŸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻ˛ā§‡āĻŦā§‡āĻ˛ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻšāĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻœā§‡āĻ° āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻ¸āĻšāĻœ āĻŦāĻ˛ā§‡ āĻŽāĻ¨ā§‡ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻ‰āĻ­āĻ¯āĻŧ āĻ¸ā§āĻ¤āĻ°āĻ•ā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤ āĻ¤āĻŦā§‡ āĻāĻ‡ āĻĢāĻ°ā§āĻŽāĻŸāĻŋāĻ¤ā§‡āĻ“ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻŦā§‡āĻļ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ•; āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ˛ā§‡āĻŦā§‡āĻ˛ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

āĻāĻŸāĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻ†āĻŽāĻŋ āĻ—āĻŋāĻŸāĻšāĻžāĻŦ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ (ssh āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡, scp āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻŦāĻ‚ āĻĄāĻ•āĻžāĻ°-āĻšāĻžāĻŦ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡) āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡āĻ›āĻŋ āĻāĻŦāĻ‚ āĻ†āĻŽāĻŋ āĻŦāĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻ¯ā§‡, āĻ¸āĻŽā§āĻ­āĻŦāĻ¤, āĻ†āĻĒāĻ¨āĻŋ āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°āĻŋāĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻŦā§‡āĻ¨, āĻ†āĻĒāĻ¨āĻžāĻ° āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¯āĻ¤āĻ‡ āĻŦāĻžāĻāĻ•āĻž āĻšā§‹āĻ• āĻ¨āĻž āĻ•ā§‡āĻ¨āĨ¤ āĻšāĻ¯āĻŧ

āĻ†āĻŽāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻāĻ• āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻžāĻ° āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻŸāĻŋ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻ¤āĻžāĻ‡ āĻ†āĻ¸ā§āĻ¨ GitHub āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻž āĻĻā§‡āĻ–ā§āĻ¨ (āĻāĻŸāĻŋ āĻŦāĻžāĻ‡āĻ¨āĻžāĻ°āĻŋ āĻ¸āĻžāĻŽāĻ—ā§āĻ°ā§€, āĻāĻ¨āĻĒāĻŋāĻāĻŽ, āĻœāĻžāĻ°, āĻĄāĻ•āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛)āĨ¤

āĻāĻ•āĻŸāĻŋ āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻāĻŦāĻ‚ GitHub āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ:

name: Deploy docker image

on:
  push:
    branches:
      - 'master'

jobs:

  build_docker_image:
    runs-on: ubuntu-18.04
    steps:

#     Build JAR:
      - uses: actions/checkout@v1
      - name: set up JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 1.11
      - name: Maven Package
        run: mvn -B clean compile package -DskipTests

#     Set global environment variables:
      - name: set global env
        id: global_env
        run: |
          echo "::set-output name=IMAGE_NAME::${GITHUB_REPOSITORY#*/}"
          echo "::set-output name=DOCKERHUB_IMAGE_NAME::docker.pkg.github.com/${GITHUB_REPOSITORY}/${GITHUB_REPOSITORY#*/}"

#     Build Docker image:
      - name: Build and tag image
        run: |
          docker build -t "${{ steps.global_env.outputs.DOCKERHUB_IMAGE_NAME }}:latest" -t "${{ steps.global_env.outputs.DOCKERHUB_IMAGE_NAME }}:${GITHUB_SHA::8}" .

      - name: Docker login
        run: docker login docker.pkg.github.com -u $GITHUB_ACTOR -p ${{secrets.GITHUB_TOKEN}}

#     Publish image to github package repository:
      - name: Publish image
        env:
          IMAGE_NAME: $GITHUB_REPOSITORY
        run: docker push "docker.pkg.github.com/$GITHUB_REPOSITORY/${{ steps.global_env.outputs.IMAGE_NAME }}"

āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ° JAR āĻĢāĻžāĻ‡āĻ˛ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ†āĻŽāĻ°āĻž āĻ—āĻŋāĻŸāĻšāĻžāĻŦ āĻĄāĻ•āĻžāĻ° āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻ° āĻĒāĻĨ āĻāĻŦāĻ‚ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻšāĻŋāĻ¤ā§āĻ°ā§‡āĻ° āĻ¨āĻžāĻŽ āĻ—āĻŖāĻ¨āĻž āĻ•āĻ°āĻŋāĨ¤ āĻāĻ–āĻžāĻ¨ā§‡ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ•ā§ŒāĻļāĻ˛ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻāĻ–āĻ¨āĻ“ āĻ–ā§āĻāĻœā§‡ āĻĒāĻžāĻ‡āĻ¨āĻŋ:

  • āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖā§‡āĻ° āĻŽāĻ¤ā§‹: echo “::set-output name=NAME::VALUE” āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ§āĻžāĻĒā§‡ āĻāĻ•āĻŸāĻŋ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻŽāĻžāĻ¨ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻĻā§‡āĻ¯āĻŧ, āĻ¯āĻžāĻ¤ā§‡ āĻāĻŸāĻŋ āĻ…āĻ¨ā§āĻ¯ āĻ¸āĻŦ āĻ§āĻžāĻĒā§‡ āĻĒāĻĄāĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤
  • āĻ†āĻĒāĻ¨āĻŋ āĻāĻ‡ āĻ§āĻžāĻĒā§‡āĻ° āĻļāĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻžāĻ°ā§€āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ§āĻžāĻĒā§‡ āĻ¸ā§‡āĻŸ āĻ•āĻ°āĻž āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡āĻ° āĻŽāĻžāĻ¨ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨: ${{ steps.global_env.outputs.DOCKERHUB_IMAGE_NAME }}
  • āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ GITHUB_REPOSITORY āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ āĻ°āĻŋāĻĒā§‹āĻœāĻŋāĻŸāĻ°āĻŋāĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ‚ āĻāĻ° āĻŽāĻžāĻ˛āĻŋāĻ• ("āĻŽāĻžāĻ˛āĻŋāĻ•/āĻ°ā§‡āĻĒā§‹-āĻ¨āĻžāĻŽ") āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡āĨ¤ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡āĻ° āĻ¨āĻžāĻŽ āĻŦā§āĻ¯āĻ¤ā§€āĻ¤ āĻāĻ‡ āĻ˛āĻžāĻ‡āĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ•āĻžāĻŸāĻžāĻ¤ā§‡, āĻ†āĻŽāĻ°āĻž āĻŦā§āĻ¯āĻžāĻļ āĻ¸āĻŋāĻ¨āĻŸā§āĻ¯āĻžāĻ•ā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦ: ${GITHUB_REPOSITORY#*/}

āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡:

docker build -t "docker.pkg.github.com/antkorwin/github-actions/github-actions:latest"

āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻ¤ā§‡ āĻ˛āĻ— āĻ‡āĻ¨ āĻ•āĻ°ā§āĻ¨:

docker login docker.pkg.github.com -u $GITHUB_ACTOR -p ${{secrets.GITHUB_TOKEN}}

āĻāĻŦāĻ‚ āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋ GitHub āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡ āĻĒā§āĻ°āĻ•āĻžāĻļ āĻ•āĻ°ā§āĻ¨:

docker push "docker.pkg.github.com/antkorwin/github-actions/github-actions"

āĻ‡āĻŽā§‡āĻœā§‡āĻ° āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻ•āĻŽāĻŋāĻŸā§‡āĻ° SHA āĻšā§āĻ¯āĻžāĻļ āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻĨāĻŽ āĻ¸āĻ‚āĻ–ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ - GITHUB_SHA āĻāĻ–āĻžāĻ¨ā§‡āĻ“ āĻ¸ā§‚āĻ•ā§āĻˇā§āĻŽāĻ¤āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻŦāĻŋāĻ˛ā§āĻĄāĻ—ā§āĻ˛āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻŽāĻžāĻ°ā§āĻœ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ¨ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡āĻ° āĻ¸ā§ƒāĻˇā§āĻŸāĻŋ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡āĻ“ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ, āĻ¤āĻžāĻšāĻ˛ā§‡ SHA āĻ—āĻŋāĻŸ āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸ā§‡ āĻ†āĻŽāĻ°āĻž āĻ¯ā§‡ āĻšā§āĻ¯āĻžāĻļ āĻĻā§‡āĻ–āĻŋ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§‡ āĻ¨āĻžāĻ“ āĻŽāĻŋāĻ˛āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ•āĻžāĻ°āĻŖ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨/āĻšā§‡āĻ•āĻ†āĻ‰āĻŸ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻĒāĻŋāĻ†āĻ°-āĻ āĻĄā§‡āĻĄāĻ˛āĻ•āĻŋāĻ‚ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻāĻĄāĻŧāĻžāĻ¤ā§‡ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻœāĻ¸ā§āĻŦ āĻ…āĻ¨āĻ¨ā§āĻ¯ āĻšā§āĻ¯āĻžāĻļ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĨ¤

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻ¯āĻĻāĻŋ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ­āĻžāĻ˛āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡ āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœ āĻŦāĻŋāĻ­āĻžāĻ— (https://github.com/antkorwin/github-actions/packages) āĻ–ā§āĻ˛āĻ˛ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĄāĻ•āĻžāĻ° āĻšāĻŋāĻ¤ā§āĻ° āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻŦā§‡āĻ¨:

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻĄāĻ•āĻžāĻ° āĻ‡āĻŽā§‡āĻœā§‡āĻ° āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖāĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ“ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻ¯āĻž āĻ…āĻŦāĻļāĻŋāĻˇā§āĻŸ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻž āĻšāĻ˛ āĻāĻ‡ āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻž āĻāĻŦāĻ‚ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻšāĻžāĻ˛ā§ āĻ•āĻ°āĻžāĨ¤ āĻ†āĻŽāĻŋ āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻ…āĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¯āĻŧ systemd āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻŸāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻŦāĨ¤

āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ

āĻ—āĻŋāĻŸāĻšāĻžāĻŦ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āĻ¯ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻšāĻœ āĻŦāĻŋāĻ•āĻ˛ā§āĻĒ āĻĻā§‡āĻ–ā§āĻ¨āĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻŦā§āĻŸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻŸāĻŋāĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ•āĻšā§āĻ¯āĻŧā§‡āĻŸāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¤āĻžāĻ‡ āĻāĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻāĻ•āĻŸāĻŋ API āĻ˛āĻŋāĻ–āĻ¤ā§‡āĻ“ āĻšāĻŦā§‡ āĻ¨āĻž; āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡āĻ‡ āĻ…āĻ˛āĻ¸āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻļā§āĻ§ā§ āĻšā§‹āĻ¸ā§āĻŸ āĻŸāĻžāĻ¨āĻ¤ā§‡ āĻšāĻŦā§‡: SERVER-URL:PORT/actuator/health

$ curl -v 127.0.0.1:8080/actuator/health

> GET /actuator/health HTTP/1.1
> Host: 127.0.0.1:8080
> User-Agent: curl/7.61.1
> Accept: */*

< HTTP/1.1 200
< Content-Type: application/vnd.spring-boot.actuator.v3+json
< Transfer-Encoding: chunked
< Date: Thu, 04 Jun 2020 12:33:37 GMT

{"status":"UP"}

āĻ•ā§āĻ°āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻšā§‡āĻ• āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¯āĻž āĻĻāĻ°āĻ•āĻžāĻ° āĻ¤āĻž āĻšāĻ˛ āĻāĻ•āĻŸāĻŋ āĻŸāĻžāĻ¸ā§āĻ• āĻ˛āĻŋāĻ–āĻ¤ā§‡, āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ āĻšāĻ āĻžā§Ž āĻāĻŸāĻŋ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ‰āĻ¤ā§āĻ¤āĻ° āĻ¨āĻž āĻĻā§‡āĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻœā§āĻžāĻĒā§āĻ¤āĻŋ āĻĒāĻžāĻ āĻžāĻŦāĨ¤

āĻĒā§āĻ°āĻĨāĻŽā§‡, āĻ†āĻ¸ā§āĻ¨ āĻœā§‡āĻ¨ā§‡ āĻ¨ā§‡āĻ‡ āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ°āĻ¨ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻĢā§āĻ˛ā§‹ āĻšāĻžāĻ˛āĻžāĻ¤ā§‡ āĻšāĻ¯āĻŧ:

on:
  schedule:
    - cron:  '*/5 * * * *'

āĻāĻŸāĻž āĻ¸āĻšāĻœ, āĻ†āĻŽāĻŋ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸āĻ“ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ āĻ¨āĻž āĻ¯ā§‡ āĻ—āĻŋāĻĨā§āĻŦā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŽāĻ¨ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯āĻž āĻāĻ•ā§‡āĻŦāĻžāĻ°ā§‡āĻ‡ āĻ“āĻ¯āĻŧā§‡āĻŦāĻšā§āĻ•ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ–āĻžāĻĒ āĻ–āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡ āĻ†āĻ›ā§‡: help.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events-schedule

āĻ•āĻžāĻ°ā§āĻ˛ āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻž āĻ¯āĻžāĻ•:

jobs:
  ping:
    runs-on: ubuntu-18.04
    steps:

      - name: curl actuator
        id: ping
        run: |
          echo "::set-output name=status::$(curl ${{secrets.SERVER_HOST}}/api/actuator/health)"

      - name: health check
        run: |
          if [[ ${{ steps.ping.outputs.status }} != *"UP"* ]]; then
            echo "health check is failed"
            exit 1
          fi
          echo "It's OK"

āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ā§‡ āĻ•ā§€ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻœāĻžāĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¤āĻž āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ­ā§‡āĻ°āĻŋāĻ¯āĻŧā§‡āĻŦāĻ˛ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻŋ, āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ§āĻžāĻĒā§‡ āĻ†āĻŽāĻ°āĻž āĻ¸ā§āĻŸā§āĻ¯āĻžāĻŸāĻžāĻ¸āĻŸāĻŋ UP āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ¤ā§āĻ°ā§āĻŸāĻŋ āĻ¸āĻš āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°āĻŋāĨ¤ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻšāĻžāĻ¤ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻŸāĻŋ āĻ•āĻ°ā§āĻŽ "āĻ†āĻŦāĻŋāĻˇā§āĻŸ" āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ 1 - āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻ…āĻ¸ā§āĻ¤ā§āĻ°āĨ¤

  - name: send alert in telegram
    if: ${{ failure() }}
    uses: appleboy/telegram-action@master
    with:
      to: ${{ secrets.TELEGRAM_TO }}
      token: ${{ secrets.TELEGRAM_TOKEN }}
      message: |
        Health check of the:
        ${{secrets.SERVER_HOST}}/api/actuator/health
        failed with the result:
        ${{ steps.ping.outputs.status }}

āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ§āĻžāĻĒā§‡ āĻ•āĻžāĻœ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ˛ā§‡āĻ‡ āĻ†āĻŽāĻ°āĻž āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽā§‡ āĻĒāĻžāĻ āĻžāĻ‡āĨ¤ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒāĻžāĻ āĻžāĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻ…ā§āĻ¯āĻžāĻĒāĻ˛āĻŦāĻ¯āĻŧ/āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽ-āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ; āĻ†āĻĒāĻ¨āĻŋ āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻŸ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻāĻŦāĻ‚ āĻšā§āĻ¯āĻžāĻŸ āĻ†āĻ‡āĻĄāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻĒā§‡āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻĒāĻĄāĻŧāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨: github.com/appleboy/telegram-action

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

Github-āĻ āĻ—ā§‹āĻĒāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻžāĻ¯āĻŧ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻ­ā§āĻ˛āĻŦā§‡āĻ¨ āĻ¨āĻž: āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° URL āĻāĻŦāĻ‚ āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽ āĻŦāĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŸā§‹āĻ•ā§‡āĻ¨āĨ¤

āĻŦā§‹āĻ¨āĻžāĻ¸ āĻŸā§āĻ°ā§āĻ¯āĻžāĻ• - āĻ…āĻ˛āĻ¸ āĻœāĻ¨ā§āĻ¯ JIRA

āĻ†āĻŽāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻĻāĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĻžāĻŽ āĻ¯ā§‡ āĻ†āĻŽāĻ°āĻž āĻœāĻŋāĻ°āĻžāĻ¤ā§‡ āĻĢāĻŋāĻ°ā§‡ āĻ¯āĻžāĻŦ, āĻāĻŦāĻ‚ āĻ†āĻŽāĻ°āĻž āĻĢāĻŋāĻ°ā§‡ āĻāĻ¸ā§‡āĻ›āĻŋāĨ¤ āĻļāĻ¤ āĻļāĻ¤ āĻŦāĻžāĻ° āĻ†āĻŽāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄ-āĻ†āĻĒā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻĒāĻ°ā§āĻ¯āĻŦā§‡āĻ•ā§āĻˇāĻŖ āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¯āĻ–āĻ¨ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§‡āĻ›ā§‡, āĻāĻ•āĻŸāĻŋ āĻļāĻžāĻ–āĻž āĻŽāĻžāĻ°ā§āĻœ āĻ•āĻ°ā§‡āĻ›ā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻŸāĻŋāĻ•ā§‡ āĻœāĻŋāĻ†āĻ°āĻ-āĻ¤ā§‡ āĻŸā§‡āĻ¨ā§‡ āĻ†āĻ¨āĻ¤ā§‡ āĻ­ā§āĻ˛ā§‡ āĻ—ā§‡āĻ›ā§‡āĨ¤ āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻ¯āĻĻāĻŋ āĻāĻ‡ āĻ¸āĻŦ āĻāĻ• āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ¸āĻšāĻœ āĻšāĻŦā§‡, āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ†āĻ¸āĻ˛ā§‡ āĻ†āĻŽāĻ°āĻž āĻ†āĻ‡āĻĄāĻŋāĻ‡āĻ¤ā§‡ āĻ•ā§‹āĻĄ āĻ˛āĻŋāĻ–āĻŋ, āĻļāĻžāĻ–āĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻŦāĻŋāĻŸāĻŦāĻžāĻ•ā§‡āĻŸ āĻŦāĻž āĻ—āĻŋāĻŸāĻšāĻžāĻŦā§‡ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤ āĻ•āĻ°āĻŋ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻœāĻŋāĻ°āĻžāĻ¤ā§‡ āĻŸā§‡āĻ¨ā§‡ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ‡, āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¨āĻ¤ā§āĻ¨ āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹ āĻ–ā§āĻ˛āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤ , āĻ•āĻ–āĻ¨āĻ“ āĻ•āĻ–āĻ¨āĻ“ āĻ†āĻŦāĻžāĻ° āĻ˛āĻ— āĻ‡āĻ¨ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻ–āĻ¨ āĻ¨āĻŋāĻ–ā§āĻāĻ¤āĻ­āĻžāĻŦā§‡ āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ•ā§€ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ¤āĻ–āĻ¨ āĻ†āĻŦāĻžāĻ° āĻŦā§‹āĻ°ā§āĻĄ āĻ–ā§‹āĻ˛āĻžāĻ° āĻ•ā§‹āĻ¨āĻ“ āĻŽāĻžāĻ¨ā§‡ āĻ¨ā§‡āĻ‡āĨ¤ āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¸āĻ•āĻžāĻ˛ā§‡ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ†āĻĒā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŸāĻžāĻ¸ā§āĻ• āĻŦā§‹āĻ°ā§āĻĄ āĻ†āĻĒāĻĄā§‡āĻŸ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻ¯āĻŧ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡āĨ¤

GitHub āĻāĻ‡ āĻ°ā§āĻŸāĻŋāĻ¨ āĻŸāĻžāĻ¸ā§āĻ•ā§‡ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻ•āĻ°āĻŦā§‡; āĻļā§āĻ°ā§ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻŽāĻ°āĻž āĻ¯āĻ–āĻ¨ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻœāĻŽāĻž āĻĻāĻŋāĻ‡ āĻ¤āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ•ā§‹āĻĄ_āĻ°āĻŋāĻ­āĻŋāĻ‰ āĻ•āĻ˛āĻžāĻŽā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ—ā§āĻ˛āĻŋāĻ•ā§‡ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻŸā§‡āĻ¨ā§‡ āĻ†āĻ¨āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ¯āĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¤āĻž āĻšāĻ˛ āĻļāĻžāĻ–āĻžāĻ° āĻ¨āĻžāĻŽāĻ•āĻ°āĻŖā§‡āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ…āĻ¨ā§āĻ¸āĻ°āĻŖ āĻ•āĻ°ā§āĻ¨:

[иĐŧŅ ĐŋŅ€ĐžĐĩĐēŅ‚Đ°]-[ĐŊĐžĐŧĐĩŅ€ Ņ‚Đ°ŅĐēĐ°]-ĐŊаСваĐŊиĐĩ

āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒ āĻ•ā§€ "GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨" GA āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ GA-8-jira-bot GA-8 āĻŸāĻžāĻ¸ā§āĻ• āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻļāĻžāĻ–āĻž āĻšāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

JIRA-āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•ā§€āĻ•āĻ°āĻŖ āĻ†āĻŸāĻ˛āĻžāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻĨā§‡āĻ•ā§‡ āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ•āĻ˛āĻžāĻĒā§‡āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ°āĻž āĻ¨āĻŋāĻ–ā§āĻāĻ¤ āĻ¨āĻ¯āĻŧ, āĻ†āĻŽāĻžāĻ•ā§‡ āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻŦāĻ˛āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¯ā§‡ āĻ¤āĻžāĻĻā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ•āĻŋāĻ›ā§ āĻ†āĻŽāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡āĻ¨āĻŋāĨ¤ āĻ¤āĻŦā§‡ āĻ†āĻŽāĻ°āĻž āĻ•ā§‡āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻŦ āĻ¯āĻž āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¸āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšā§ƒāĻ¤ āĻšāĻ¯āĻŧāĨ¤

āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ JIRA-āĻ¤ā§‡ āĻ˛āĻ— āĻ‡āĻ¨ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡: atlassian/gajira-login

jobs:
  build:
    runs-on: ubuntu-latest
    name: Jira Workflow
    steps:
      - name: Login
        uses: atlassian/gajira-login@master
        env:
          JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }}
          JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }}
          JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }}

āĻāĻŸāĻŋ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ JIRA-āĻ¤ā§‡ āĻāĻ•āĻŸāĻŋ āĻŸā§‹āĻ•ā§‡āĻ¨ āĻĒā§‡āĻ¤ā§‡ āĻšāĻŦā§‡, āĻāĻŸāĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¤āĻž āĻāĻ–āĻžāĻ¨ā§‡ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡: confluence.atlassian.com/cloud/api-tokens-938839638.html

āĻ†āĻŽāĻ°āĻž āĻļāĻžāĻ–āĻžāĻ° āĻ¨āĻžāĻŽ āĻĨā§‡āĻ•ā§‡ āĻŸāĻžāĻ¸ā§āĻ• āĻļāĻ¨āĻžāĻ•ā§āĻ¤āĻ•āĻžāĻ°ā§€ āĻŦā§‡āĻ° āĻ•āĻ°āĻŋ:

  - name: Find Issue
    id: find_issue
    shell: bash
    run: |
      echo "::set-output name=ISSUE_ID::$(echo ${GITHUB_HEAD_REF} | egrep -o 'GA-[0-9]{1,4}')"
      echo brach name: $GITHUB_HEAD_REF
      echo extracted issue: ${GITHUB_HEAD_REF} | egrep -o 'GA-[0-9]{1,4}'

  - name: Check Issue
    shell: bash
    run: |
      if [[ "${{steps.find_issue.outputs.ISSUE_ID}}" == "" ]]; then
        echo "Please name your branch according to the JIRA issue: [project_key]-[task_number]-branch_name"
        exit 1
      fi
      echo succcessfully found JIRA issue: ${{steps.find_issue.outputs.ISSUE_ID}}

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ—āĻŋāĻŸāĻšāĻžāĻŦ āĻŽāĻžāĻ°ā§āĻ•ā§‡āĻŸāĻĒā§āĻ˛ā§‡āĻ¸ā§‡ āĻ…āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ•āĻ°ā§‡āĻ¨ āĻ¤āĻŦā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻāĻ‡ āĻ•āĻžāĻœā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻžāĻ•ā§‡ āĻļāĻžāĻ–āĻžāĻ° āĻ¨āĻžāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ—ā§āĻ°ā§‡āĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ•āĻ‡ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻ•āĻžāĻ°āĻŖ āĻ†āĻŸāĻ˛āĻžāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ¨ā§‡āĻ° āĻāĻ‡ āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨āĻŸāĻŋ āĻ†āĻŽāĻžāĻ° āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡ āĻ•ā§‹āĻ¨āĻ“āĻ­āĻžāĻŦā§‡āĻ‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻžāĻ¯āĻŧāĻ¨āĻŋāĨ¤ , āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•āĻŋ āĻ­ā§āĻ˛ āĻ›āĻŋāĻ˛ āĻ¤āĻž āĻ–ā§āĻāĻœā§‡ āĻŦā§‡āĻ° āĻ•āĻ°āĻ¤ā§‡ - āĻ†āĻĒāĻ¨āĻžāĻ° āĻšāĻžāĻ¤ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻāĻ•āĻ‡ āĻœāĻŋāĻ¨āĻŋāĻ¸ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻ¯āĻŧā§‡ āĻĻā§€āĻ°ā§āĻ˜āĨ¤

āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ˛ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¯āĻž āĻ…āĻŦāĻļāĻŋāĻˇā§āĻŸ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻž āĻšāĻ˛ "āĻ•ā§‹āĻĄ āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§‹āĻšāĻ¨āĻž" āĻ•āĻ˛āĻžāĻŽā§‡ āĻ•āĻžāĻœāĻŸāĻŋ āĻ¸āĻ°āĻžāĻ¨ā§‹:

  - name: Transition issue
    if: ${{ success() }}
    uses: atlassian/gajira-transition@master
    with:
      issue: ${{ steps.find_issue.outputs.ISSUE_ID }}
      transition: "Code review"

GitHub-āĻ āĻāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻāĻŸāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¯āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¤āĻž āĻšāĻ˛ āĻĒā§‚āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§€ āĻ§āĻžāĻĒā§‡ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ‡āĻ¸ā§āĻ¯ā§ āĻ†āĻ‡āĻĄāĻŋ āĻāĻŦāĻ‚ JIRA-āĻ¤ā§‡ āĻ…āĻ¨ā§āĻŽā§‹āĻĻāĻ¨ āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻ‰āĻĒāĻ°ā§‡ āĻ•āĻ°ā§‡āĻ›āĻŋāĨ¤

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻāĻ•āĻ‡āĻ­āĻžāĻŦā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻŽāĻžāĻ¸ā§āĻŸāĻžāĻ°ā§‡ āĻŽāĻžāĻ°ā§āĻœ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻāĻŦāĻ‚ āĻ—āĻŋāĻŸāĻšāĻžāĻŦ āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•āĻĢā§āĻ˛ā§‹ āĻĨā§‡āĻ•ā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸāĻ—ā§āĻ˛āĻŋ āĻŸā§‡āĻ¨ā§‡ āĻ†āĻ¨āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡, āĻāĻŸāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•āĻ˛ā§āĻĒāĻ¨āĻž āĻāĻŦāĻ‚ āĻ°ā§āĻŸāĻŋāĻ¨ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋ āĻ¸ā§āĻŦāĻ¯āĻŧāĻ‚āĻ•ā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻ°āĻžāĻ° āĻ‡āĻšā§āĻ›āĻžāĻ° āĻ‰āĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻ­āĻ° āĻ•āĻ°ā§‡āĨ¤

āĻ¤āĻĨā§āĻ¯āĻ“

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻ•ā§āĻ˛āĻžāĻ¸āĻŋāĻ• DEVOPS āĻĄāĻžāĻ¯āĻŧāĻžāĻ—ā§āĻ°āĻžāĻŽāĻŸāĻŋ āĻĻā§‡āĻ–ā§‡āĻ¨, āĻ†āĻŽāĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻŦā§āĻ¯āĻ¤ā§€āĻ¤ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§‡ āĻ•āĻ­āĻžāĻ° āĻ•āĻ°ā§‡āĻ›āĻŋ, āĻ†āĻŽāĻŋ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°ā§‡āĻ¨, āĻ†āĻĒāĻ¨āĻŋ āĻšā§‡āĻ˛ā§āĻĒ-āĻĄā§‡āĻ¸ā§āĻ• āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•ā§€āĻ•āĻ°āĻŖā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻžāĻœāĻžāĻ°ā§‡ āĻ•āĻŋāĻ›ā§ āĻĒāĻĻāĻ•ā§āĻˇā§‡āĻĒ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨, āĻ¤āĻžāĻ‡ āĻ†āĻŽāĻ°āĻž āĻ§āĻ°ā§‡ āĻ¨ā§‡āĻŦ āĻ¯ā§‡ āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻĒā§āĻ™ā§āĻ–āĻžāĻ¨ā§āĻĒā§āĻ™ā§āĻ– āĻšāĻ¤ā§‡ āĻšāĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ‰āĻĒāĻ¸āĻ‚āĻšāĻžāĻ° āĻŸāĻžāĻ¨āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨ āĻ¸āĻš āĻ¨āĻ°āĻ•ā§‡āĻ° āĻŦā§ƒāĻ¤ā§āĻ¤ (āĻāĻ•āĻŸāĻŋ āĻœāĻžāĻ­āĻž āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ CI/CD āĻĒāĻžāĻ‡āĻĒāĻ˛āĻžāĻ‡āĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž)

āĻĒā§‡āĻļāĻžāĻĻāĻžāĻ°āĻ°āĻž:

  • āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ…āĻ¨ā§āĻˇā§āĻ āĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°ā§āĻŽ āĻ¸āĻš āĻŽāĻžāĻ°ā§āĻ•ā§‡āĻŸāĻĒā§āĻ˛ā§‡āĻ¸, āĻāĻŸāĻŋ āĻ–ā§āĻŦ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤āĨ¤ āĻ¤āĻžāĻĻā§‡āĻ° āĻŦā§‡āĻļāĻŋāĻ°āĻ­āĻžāĻ—ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ…āĻ¨ā§āĻ°ā§‚āĻĒ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻŦāĻž āĻ—āĻŋāĻŸāĻšāĻžāĻŦ āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛ā§‡ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ˛ā§‡āĻ–āĻ•ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§‹āĻ¸ā§āĻŸ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¤āĻž āĻŦā§‹āĻāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ†āĻĒāĻ¨āĻŋ āĻ‰āĻ¤ā§āĻ¸ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤
  • āĻ¸āĻŽāĻžāĻŦā§‡āĻļā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻŸāĻĢāĻ°ā§āĻŽ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻšāĻ¨ āĻ•āĻ°āĻž: āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸, āĻŽā§āĻ¯āĻžāĻ• āĻ“āĻāĻ¸, āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻœ āĻŦā§‡āĻļ āĻ†āĻ•āĻ°ā§āĻˇāĻŖā§€āĻ¯āĻŧ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯āĨ¤
  • Github āĻĒā§āĻ¯āĻžāĻ•ā§‡āĻœāĻ—ā§āĻ˛āĻŋ āĻāĻ•āĻŸāĻŋ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻœāĻŋāĻ¨āĻŋāĻ¸, āĻ¸āĻŽāĻ—ā§āĻ° āĻĒāĻ°āĻŋāĻ•āĻžāĻ āĻžāĻŽā§‹ āĻāĻ• āĻœāĻžāĻ¯āĻŧāĻ—āĻžāĻ¯āĻŧ āĻ°āĻžāĻ–āĻž āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ•, āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āĻ¨ āĻ‰āĻ‡āĻ¨ā§āĻĄā§‹āĻ¤ā§‡ āĻ¸āĻžāĻ°ā§āĻĢ āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡ āĻ¨āĻž, āĻ¸āĻŦāĻ•āĻŋāĻ›ā§ āĻāĻ• āĻŦāĻž āĻĻā§āĻŸāĻŋ āĻŽāĻžāĻ‰āĻ¸ āĻ•ā§āĻ˛āĻŋāĻ•ā§‡āĻ° āĻŦā§āĻ¯āĻžāĻ¸āĻžāĻ°ā§āĻ§ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻāĻŦāĻ‚ GitHub āĻ…ā§āĻ¯āĻžāĻ•āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻĒā§āĻ°ā§‹āĻĒā§āĻ°āĻŋ āĻāĻ•āĻ¤ā§āĻ°āĻŋāĻ¤āĨ¤ āĻĢā§āĻ°āĻŋ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖā§‡ āĻĄāĻ•āĻžāĻ° āĻ°ā§‡āĻœāĻŋāĻ¸ā§āĻŸā§āĻ°āĻŋ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĻ“ āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĨ¤
  • āĻ—āĻŋāĻŸāĻšāĻžāĻŦ āĻŦāĻŋāĻ˛ā§āĻĄ āĻ˛āĻ—āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻ—ā§‹āĻĒāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻž āĻ˛ā§āĻ•āĻŋāĻ¯āĻŧā§‡ āĻ°āĻžāĻ–ā§‡, āĻ¤āĻžāĻ‡ āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻŦāĻ‚ āĻŸā§‹āĻ•ā§‡āĻ¨āĻ—ā§āĻ˛āĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°āĻ¤ā§‡ āĻāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻž āĻ­ā§€āĻ¤āĻŋāĻœāĻ¨āĻ• āĻ¨āĻ¯āĻŧāĨ¤ āĻ†āĻŽāĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ†āĻŽāĻŋ āĻ•āĻ–āĻ¨āĻ‡ āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡ āĻāĻ° āĻŦāĻŋāĻļā§āĻĻā§āĻ§ āĻ†āĻ•āĻžāĻ°ā§‡ āĻ—ā§‹āĻĒāĻ¨āĻŸāĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋāĻ¨āĻŋāĨ¤
  • āĻ“āĻĒā§‡āĻ¨ āĻ¸ā§‹āĻ°ā§āĻ¸ āĻĒā§āĻ°āĻ•āĻ˛ā§āĻĒā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ¨āĻžāĻŽā§‚āĻ˛ā§āĻ¯ā§‡

āĻ•āĻ¨āĻ¸:

  • YML, āĻ­āĻžāĻ˛, āĻ†āĻŽāĻŋ āĻ¤āĻžāĻ•ā§‡ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°āĻŋ āĻ¨āĻžāĨ¤ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻŦāĻžāĻšā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ†āĻŽāĻžāĻ° āĻ•āĻžāĻ›ā§‡ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ•āĻŽāĻŋāĻŸ āĻŽā§‡āĻ¸ā§‡āĻœāĻŸāĻŋ āĻšāĻ˛ "āĻĢāĻŋāĻ•ā§āĻ¸ āĻ‡āĻāĻŽāĻāĻ˛ āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻŸ", āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻ•ā§‹āĻĨāĻžāĻ“ āĻāĻ•āĻŸāĻŋ āĻŸā§āĻ¯āĻžāĻŦ āĻ°āĻžāĻ–āĻ¤ā§‡ āĻ­ā§āĻ˛ā§‡ āĻ—ā§‡āĻ›ā§‡āĻ¨, āĻ…āĻĨāĻŦāĻž āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋ āĻ­ā§āĻ˛ āĻ˛āĻžāĻ‡āĻ¨ā§‡ āĻ˛āĻŋāĻ–āĻ›ā§‡āĻ¨āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ­āĻžāĻŦā§‡, āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻŸā§‡āĻ•ā§āĻŸāĻ° āĻāĻŦāĻ‚ āĻļāĻžāĻ¸āĻ•ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°ā§āĻĻāĻžāĻ° āĻ¸āĻžāĻŽāĻ¨ā§‡ āĻŦāĻ¸āĻž āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ†āĻ¨āĻ¨ā§āĻĻāĻĻāĻžāĻ¯āĻŧāĻ• āĻ…āĻ­āĻŋāĻœā§āĻžāĻ¤āĻž āĻ¨āĻ¯āĻŧāĨ¤
  • āĻĄāĻŋāĻŦāĻžāĻ—, āĻ•āĻŽāĻŋāĻŸ āĻĻāĻŋāĻ¯āĻŧā§‡ āĻĢā§āĻ˛ā§‹ āĻĄāĻŋāĻŦāĻžāĻ— āĻ•āĻ°āĻž, āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻžāĻŖ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻ¸ā§‹āĻ˛ā§‡ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•āĻ°āĻž āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ "āĻ†āĻĒāĻ¨āĻŋ āĻ“āĻ­āĻžāĻ°āĻĄāĻ¨" āĻŦāĻŋāĻ­āĻžāĻ—ā§‡āĻ° āĻŦā§‡āĻļāĻŋ; āĻ†āĻĒāĻ¨āĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻœāĻ¨āĻ• IDEA āĻāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻ¤ā§‡ āĻ…āĻ­ā§āĻ¯āĻ¸ā§āĻ¤, āĻ¯āĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻŋ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻ•āĻŋāĻ›ā§ āĻĄāĻŋāĻŦāĻžāĻ— āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ .
  • āĻ†āĻĒāĻ¨āĻŋ āĻ¯ā§‡āĻ•ā§‹āĻ¨ āĻ•āĻŋāĻ›ā§āĻ° āĻ‰āĻĒāĻ° āĻ†āĻĒāĻ¨āĻžāĻ° āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻāĻŸāĻŋāĻ•ā§‡ āĻĄāĻ•āĻžāĻ°ā§‡ āĻŽā§‹āĻĄāĻŧāĻžāĻ¨ā§‹ āĻĨāĻžāĻ•ā§‡ āĻ¤āĻŦā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻœāĻžāĻ­āĻžāĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ¸ā§āĻĨāĻžāĻ¨ā§€āĻ¯āĻŧāĻ­āĻžāĻŦā§‡ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤, āĻ…āĻŦāĻļā§āĻ¯āĻ‡ āĻāĻŸāĻŋ āĻ¸ā§āĻŦāĻžāĻĻā§‡āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧ, āĻ¤āĻŦā§‡ āĻ†āĻŽāĻŋ js āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡ āĻ…āĻ¨ā§āĻ¯ āĻ•āĻŋāĻ›ā§ āĻĒāĻ›āĻ¨ā§āĻĻ āĻ•āĻ°āĻŦāĨ¤

āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŽāĻ¨ā§‡ āĻ•āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻāĻŋāĻ‡ āĻ¯ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻĒā§āĻŸ āĻ¸āĻš āĻ¸āĻ‚āĻ—ā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛āĻŸāĻŋ āĻāĻ–āĻžāĻ¨ā§‡ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡: github.com/antkorwin/github-actions

āĻ†āĻ—āĻžāĻŽā§€ āĻ¸āĻĒā§āĻ¤āĻžāĻšā§‡ āĻ†āĻŽāĻŋ āĻ¸āĻ™ā§āĻ—ā§‡ āĻĒāĻžāĻ°āĻĢāĻ°ā§āĻŽ āĻ•āĻ°āĻŦ āĻ°āĻŋāĻĒā§‹āĻ°ā§āĻŸ āĻšāĻžāĻ‡āĻœā§‡āĻ¨āĻŦāĻžāĻ— 2020 āĻĒāĻŋāĻŸāĻžāĻ° āĻ¸āĻŽā§āĻŽā§‡āĻ˛āĻ¨ā§‡āĨ¤ āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻžāĻ° āĻĄā§‡āĻŸāĻž āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ­ā§āĻ˛āĻ—ā§āĻ˛āĻŋ āĻāĻĄāĻŧāĻžāĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻŦāĻ˛āĻŦ āĻ¨āĻž, āĻ¤āĻŦā§‡ āĻœāĻžāĻ­āĻž āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻĄā§‡āĻŸāĻž āĻ¸ā§‡āĻŸāĻ—ā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻ•āĻžāĻœ āĻ•āĻ°āĻžāĻ° āĻ†āĻŽāĻžāĻ° āĻ—ā§‹āĻĒāĻ¨ā§€āĻ¯āĻŧāĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ“ āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻ•āĻ°āĻŦ!

āĻ‰āĻ¤ā§āĻ¸: www.habr.com