แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒ›แƒ” แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒ›แƒ˜แƒฌแƒ”แƒ•แƒก แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java-แƒ–แƒ” แƒกแƒแƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒ˜แƒก แƒฆแƒ˜แƒ แƒฌแƒงแƒแƒ แƒแƒ, แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒแƒ แƒ. แƒ›แƒ” แƒชแƒแƒขแƒ แƒฎแƒœแƒ˜แƒก แƒฌแƒ˜แƒœ แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒ’แƒแƒ“แƒแƒ›แƒ”แƒขแƒแƒœแƒ แƒฉแƒ”แƒ›แƒ˜ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒกแƒแƒชแƒแƒ•แƒ˜ Travis-CI-แƒ“แƒแƒœ แƒ“แƒ TeamCity-แƒ“แƒแƒœ GitHub Actions-แƒจแƒ˜ แƒ“แƒ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒช แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒ“แƒ.

แƒ แƒแƒก แƒ›แƒแƒ•แƒแƒฎแƒ“แƒ”แƒœแƒ— แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒ˜แƒ แƒ”แƒ‘แƒแƒก?

แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒ˜แƒ แƒ”แƒ‘แƒ—, แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒžแƒแƒขแƒแƒ แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ Spring boot / Java 11 / Maven-แƒจแƒ˜. แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒ“แƒแƒ•แƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ˜แƒ แƒ’แƒ•แƒšแƒ˜แƒ• แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ REST API แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก.

แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒฎแƒ•แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒฅ: github.com/antkorwin/github-actions แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒขแƒแƒžแƒ˜ แƒแƒ˜แƒกแƒแƒฎแƒ”แƒ‘แƒ แƒแƒ› แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒจแƒ˜.

JIRA แƒ“แƒ แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ•แƒ

แƒฆแƒ˜แƒ แƒก แƒ˜แƒ›แƒ˜แƒก แƒ—แƒฅแƒ›แƒ, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ• แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— JIRA-แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜แƒก แƒขแƒ แƒ”แƒ™แƒ”แƒ แƒก, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒชแƒแƒšแƒ™แƒ” แƒ“แƒแƒคแƒ แƒแƒ› แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ˜:

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒชแƒแƒขแƒ แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒฃแƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒ›แƒแƒก, แƒ—แƒฃ แƒ แƒ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒœแƒ˜แƒ•แƒ—แƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— JIRA-แƒ› แƒ“แƒ GitHub-แƒ›แƒ แƒจแƒ”แƒกแƒ—แƒแƒ•แƒแƒ–แƒแƒœ แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒแƒจแƒ˜.

แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒ˜แƒ แƒ”แƒ‘แƒ— แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒแƒฌแƒงแƒแƒ‘แƒแƒก

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ maven-แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ, แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก mvn แƒกแƒฃแƒคแƒ—แƒ แƒžแƒแƒ™แƒ”แƒขแƒ˜.

Github Actions-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒแƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒคแƒแƒ˜แƒšแƒ˜ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฆแƒฌแƒ”แƒ แƒก แƒฉแƒ•แƒ”แƒœแƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒก, แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ”แƒก แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ yml แƒคแƒแƒ˜แƒšแƒ˜แƒ—, แƒ•แƒ”แƒ  แƒ•แƒ˜แƒขแƒงแƒ•แƒ˜, แƒ แƒแƒ› แƒ›แƒแƒ›แƒฌแƒแƒœแƒก "yml แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ", แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒ แƒ•แƒฅแƒœแƒแƒ— - แƒฉแƒ•แƒ”แƒœ แƒแƒ›แƒแƒก แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— .github/ directory workflow/ แƒคแƒแƒ˜แƒšแƒ˜ 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 โ€” แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒ› แƒฆแƒแƒœแƒ˜แƒกแƒซแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒ.

on: pull_request/push โ€” แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒ”แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ˜ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒแƒก แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ”, แƒ แƒแƒชแƒ แƒแƒกแƒขแƒแƒขแƒ—แƒแƒœ แƒฎแƒ“แƒ”แƒ‘แƒ แƒ‘แƒ˜แƒซแƒ’แƒ˜ แƒ“แƒ แƒ˜แƒฅแƒ›แƒœแƒ”แƒ‘แƒ pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜.

แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ (แƒกแƒแƒ›แƒฃแƒจแƒแƒ) แƒ“แƒ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ”แƒขแƒแƒžแƒ”แƒ‘แƒ˜ (แƒœแƒแƒ‘แƒ˜แƒฏแƒ”แƒ‘แƒ˜) แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ - แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒแƒ แƒฉแƒ˜แƒแƒ— แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” OS, แƒ’แƒแƒกแƒแƒ™แƒ•แƒ˜แƒ แƒ˜แƒ, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— Mac OS, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ™แƒ”แƒ แƒซแƒ แƒกแƒแƒชแƒแƒ•แƒ”แƒ‘แƒจแƒ˜ แƒ”แƒก แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒซแƒ•แƒ˜แƒ แƒ˜แƒ (แƒšแƒ˜แƒœแƒฃแƒฅแƒกแƒ˜แƒก แƒจแƒ”แƒ“แƒแƒ แƒ”แƒ‘แƒ˜แƒ—).

แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒกแƒฎแƒ•แƒ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก/setup-java แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ— แƒ’แƒแƒ แƒ”แƒ›แƒแƒก Java 11-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ”แƒ แƒ—แƒแƒ“ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒ—แƒแƒช แƒ•แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ— แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก, แƒแƒ แƒกแƒ”แƒ‘แƒ˜แƒ—แƒแƒ“ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ’แƒแƒ“แƒแƒ”แƒชแƒ”แƒ›แƒ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก.

แƒ แƒฉแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Maven-แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“: run: mvn -B clean package แƒ“แƒ แƒแƒจแƒ -B แƒแƒ›แƒ‘แƒแƒ‘แƒก, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒ แƒแƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ แƒ”แƒŸแƒ˜แƒ›แƒ˜, แƒ แƒแƒ—แƒ แƒ›แƒแƒ•แƒแƒœแƒ›แƒ แƒฃแƒชแƒ”แƒ‘ แƒแƒ  แƒ›แƒแƒ˜แƒœแƒ“แƒแƒ›แƒแƒก แƒ แƒแƒฆแƒแƒชแƒ˜แƒก แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒ“แƒ˜แƒ“แƒ˜! แƒแƒฎแƒšแƒ, แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒแƒก แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ— แƒ›แƒแƒกแƒขแƒ”แƒ แƒก, แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒ.

แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ

แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ แƒ™แƒแƒ แƒ’แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜, แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ“ แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒ˜ แƒ˜แƒงแƒแƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ แƒแƒ แƒ˜แƒก แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒ‘แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ—แƒ•แƒแƒšแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช PR แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒแƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— - แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒชแƒ˜แƒ—, แƒ แƒแƒ› แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ“แƒ˜แƒก แƒ“แƒ แƒแƒ แƒแƒ•แƒ˜แƒก แƒ“แƒแƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ แƒ—แƒแƒ•แƒ˜แƒกแƒ˜ แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒแƒ›แƒ“แƒ”.

แƒฉแƒ•แƒ”แƒœ แƒฉแƒแƒ•แƒแƒขแƒแƒ แƒ”แƒ‘แƒ— แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒก pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก แƒ“แƒ แƒ’แƒแƒ•แƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒ“แƒ แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒแƒคแƒแƒ แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

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 }}

แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒคแƒแƒ แƒแƒ“, แƒ›แƒ” แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ codecov-แƒก jacoco แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“. codecov-แƒก แƒแƒฅแƒ•แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒก แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒŸแƒ”แƒขแƒแƒœแƒ˜, แƒ แƒแƒ› แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก แƒฉแƒ•แƒ”แƒœแƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒ—:

${{ secrets.CODECOV_TOKEN }} โ€” แƒฉแƒ•แƒ”แƒœ แƒ•แƒœแƒแƒฎแƒแƒ•แƒ— แƒแƒ› แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒแƒก แƒแƒ แƒแƒ”แƒ แƒ—แƒฎแƒ”แƒš, secrets แƒแƒ แƒ˜แƒก GitHub-แƒจแƒ˜ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒ˜แƒฅ แƒžแƒแƒ แƒแƒšแƒ”แƒ‘แƒ˜/แƒขแƒแƒ™แƒ”แƒœแƒ”แƒ‘แƒ˜/แƒฐแƒแƒกแƒขแƒ”แƒ‘แƒ˜/urls แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒจแƒ”แƒขแƒแƒœแƒ˜แƒšแƒ˜ แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ‘แƒแƒ–แƒแƒจแƒ˜.

แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒ”แƒ‘แƒก GitHub-แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒจแƒ˜:

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒŸแƒ”แƒขแƒแƒœแƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ–แƒ” codecov.io GitHub-แƒ˜แƒก แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒกแƒแƒฏแƒแƒ แƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ“แƒแƒกแƒแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ“, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒฐแƒงแƒ•แƒ”แƒ— แƒ›แƒกแƒ’แƒแƒ•แƒก แƒ‘แƒ›แƒฃแƒšแƒก: GitHub แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜/[แƒ แƒ”แƒžแƒแƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜]. แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ”แƒ›แƒแƒขแƒแƒก แƒ™แƒ”แƒ แƒซแƒ แƒกแƒแƒชแƒแƒ•แƒ˜; แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒแƒœแƒ˜แƒญแƒแƒ— Codecov แƒฃแƒคแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก Github-แƒจแƒ˜.

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— jacoco แƒ›แƒแƒ“แƒฃแƒšแƒ˜ 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>

แƒแƒฎแƒšแƒ codecov แƒ‘แƒแƒขแƒ˜ แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒก แƒฉแƒ•แƒ”แƒœแƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก แƒ“แƒ แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒ“แƒแƒคแƒแƒ แƒ•แƒ˜แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒ แƒแƒคแƒ˜แƒ™แƒก:

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒแƒœแƒแƒšแƒ˜แƒ–แƒแƒขแƒแƒ แƒ˜

แƒฉแƒ”แƒ›แƒ˜ แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒแƒจแƒ˜ แƒ›แƒ” แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘ แƒกแƒแƒœแƒแƒ แƒ˜แƒก แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒก แƒกแƒขแƒแƒขแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ travis-ci-แƒกแƒ—แƒแƒœ. แƒแƒกแƒ” แƒ แƒแƒ›, แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜แƒ GitHub Actions-แƒจแƒ˜ แƒ›แƒ˜แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒกแƒแƒก แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ. แƒกแƒแƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ แƒ‘แƒแƒ–แƒแƒ แƒ˜ แƒ›แƒแƒ’แƒแƒ แƒ˜ แƒ แƒแƒ›แƒ”แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒฏแƒ”แƒ แƒแƒ“ แƒชแƒแƒขแƒ แƒ“แƒแƒ›แƒแƒ›แƒชแƒ˜แƒ แƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฉแƒ•แƒ”แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒ แƒ•แƒ˜แƒžแƒแƒ•แƒ” แƒ˜แƒก แƒแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ แƒ“แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ” แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒ–แƒ”. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ, แƒ แƒแƒ› แƒกแƒแƒœแƒแƒ แƒ˜ แƒแƒ  แƒฃแƒญแƒ”แƒ แƒก แƒ›แƒฎแƒแƒ แƒก แƒ›แƒแƒ•แƒ”แƒœแƒ–แƒ” แƒแƒœ แƒ’แƒ แƒแƒ“แƒ”แƒšแƒ–แƒ” แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒ–แƒ–แƒ” แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก. แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ”แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒฌแƒ”แƒ แƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ•แƒ˜แƒœ แƒ™แƒ˜แƒ—แƒฎแƒฃแƒšแƒแƒ‘แƒก?!

แƒ”แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒแƒ›แƒแƒก แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— mvn แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—:

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 - แƒ”แƒก แƒแƒ แƒ˜แƒก แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒŸแƒ”แƒขแƒแƒœแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช GitHub แƒฅแƒ›แƒœแƒ˜แƒก, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ— sonarcloud[bot] แƒจแƒ”แƒซแƒšแƒ”แƒ‘แƒก แƒจแƒ”แƒกแƒ•แƒšแƒแƒก Git-แƒจแƒ˜, แƒ แƒแƒ—แƒ แƒ“แƒแƒ’แƒ•แƒ˜แƒขแƒแƒ•แƒแƒก แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒจแƒ˜.

Dsonar.projectKey โ€” แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒฌแƒแƒ“แƒ”แƒ‘แƒ แƒกแƒแƒœแƒแƒ แƒจแƒ˜, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒจแƒ˜.

แƒ“แƒกแƒแƒœแƒแƒ .แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ - แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ GitHub-แƒ“แƒแƒœ.

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก แƒ“แƒ แƒ•แƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ˜แƒ— sonarcloud[bot]-แƒก แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ”แƒ‘แƒจแƒ˜:

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ›แƒ”แƒœแƒขแƒ˜

build แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜ แƒฉแƒแƒขแƒแƒ แƒ“แƒ แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ•แƒแƒฅแƒ•แƒ”แƒงแƒœแƒแƒ—. แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ GitHub Actions-แƒก แƒ’แƒแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒคแƒ แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜.

แƒกแƒแƒ›แƒกแƒแƒฎแƒฃแƒ แƒจแƒ˜ แƒ›แƒแƒฅแƒ•แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ‘แƒแƒ–แƒแƒช แƒแƒ แƒ˜แƒก bitbucket-แƒจแƒ˜ (แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒกแƒ”แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ› แƒแƒ›แƒ‘แƒแƒ•แƒจแƒ˜: โ€žแƒ“แƒฆแƒ˜แƒ— แƒ‘แƒ˜แƒขแƒ‘แƒแƒ™แƒ”แƒขแƒก แƒ•แƒฌแƒ”แƒ , แƒฆแƒแƒ›แƒ˜แƒ— GitHub-แƒก แƒ•แƒฌแƒ”แƒ โ€œ). แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, bitbucket-แƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜. แƒ”แƒก แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒ, แƒ แƒแƒ“แƒ’แƒแƒœ แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฎแƒ”แƒšแƒ˜แƒ— แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒแƒจแƒ˜ แƒ“แƒ แƒ˜แƒฅ แƒ’แƒแƒ“แƒแƒแƒ’แƒ“แƒแƒ— แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒแƒจแƒ˜ แƒจแƒ”แƒ›แƒแƒ•แƒแƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ›แƒแƒซแƒ”แƒ‘แƒœแƒแƒ— แƒ’แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒกแƒแƒฎแƒšแƒ”แƒ”แƒ‘แƒ˜, แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜ แƒฏแƒ˜แƒ แƒแƒจแƒ˜, แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒกแƒแƒชแƒแƒ•แƒจแƒ˜. แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒ“แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒจแƒแƒœแƒกแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒ˜แƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒ แƒแƒฆแƒแƒช แƒแƒœ แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒแƒ— แƒ˜แƒก, แƒ แƒแƒช แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ“แƒ แƒ‘แƒแƒšแƒ แƒ“แƒ แƒแƒก, แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒฃแƒ’แƒ”แƒ‘แƒแƒ แƒ˜แƒ, แƒ แƒ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ”แƒ™แƒฃแƒ—แƒ•แƒœแƒ”แƒ‘แƒแƒ“แƒ”แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ™แƒšแƒแƒกแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก - แƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ แƒ—แƒฃ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒฌแƒแƒ แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒขแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒ, แƒแƒœ แƒ แƒแƒฆแƒแƒช แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒฃแƒšแƒ˜.

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ’แƒ•แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ GitHub-แƒ˜แƒก แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜? แƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜ แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ - แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒฅแƒ›แƒœแƒ”แƒšแƒ˜, แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜, แƒ แƒแƒ› แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ“แƒแƒแƒฏแƒ’แƒฃแƒคแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ˜แƒšแƒจแƒ˜:

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒ“แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ (.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 }}

แƒแƒ›แƒ˜แƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒ›แƒแƒ–แƒ˜แƒ“แƒ•แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒจแƒ”แƒ’แƒ แƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒขแƒ”แƒ‘แƒจแƒ˜ - แƒ›แƒแƒ’แƒ˜แƒ!

แƒแƒฅ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒฉแƒœแƒ“แƒ”แƒก แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ: แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒ“แƒแƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ‘แƒแƒ— แƒขแƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒกแƒ›แƒ แƒžแƒ˜แƒแƒ แƒจแƒ˜? แƒ›แƒ”แƒ แƒ” แƒ’แƒแƒฃแƒ’แƒ”แƒ‘แƒแƒ แƒ˜แƒ แƒ แƒแƒ›แƒ”แƒš แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒแƒจแƒ˜ แƒฉแƒแƒกแƒ•แƒ แƒ“แƒ แƒ˜แƒกแƒ”แƒ• แƒฎแƒ”แƒšแƒ˜แƒ— แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒก แƒกแƒแƒฅแƒ›แƒ”, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒžแƒ˜แƒแƒ แƒ–แƒ” แƒชแƒแƒš-แƒชแƒแƒšแƒ™แƒ”. แƒแƒ› แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒ“แƒแƒกแƒแƒญแƒ แƒ”แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒกแƒฎแƒ•แƒ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ - แƒ”แƒขแƒ˜แƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒ“แƒแƒกแƒขแƒฃแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ - แƒ˜แƒก แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒขแƒ”แƒ’แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒแƒก pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒ–แƒ”. แƒ—แƒฃ แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒขแƒ”แƒ’แƒ”แƒ‘แƒ˜, แƒ›แƒแƒจแƒ˜แƒœ แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒ•แƒ”แƒ  แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒฉแƒ•แƒ”แƒœ แƒ•แƒœแƒแƒฎแƒแƒ•แƒ— แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒฉแƒ•แƒ”แƒœแƒก pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒจแƒ˜.

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'

แƒแƒฎแƒšแƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ pull-แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ›แƒแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜ แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒขแƒ”แƒ’แƒ˜แƒ—: type:fix, type:features, type:documentation, type:tests, type:config.

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒ’แƒแƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ

แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒ”แƒฎแƒ”แƒ— แƒ˜แƒกแƒ”แƒ— แƒ—แƒ”แƒ›แƒแƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ—แƒแƒœ, แƒฆแƒ˜แƒ แƒก แƒšแƒแƒžแƒแƒ แƒแƒ™แƒ˜ แƒ˜แƒกแƒ”แƒ— แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒ–แƒ”, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ labeler, แƒ˜แƒก แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒก แƒขแƒ”แƒ’แƒ”แƒ‘แƒก PR-แƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ”แƒช แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒแƒ—, แƒ แƒแƒ’แƒแƒ แƒช [build] แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ pull แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ .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/**"

แƒ›แƒ” แƒ•แƒ”แƒ  แƒ›แƒแƒ•แƒแƒฎแƒ”แƒ แƒฎแƒ” แƒ˜แƒ› แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ•แƒ˜แƒšแƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒก แƒšแƒ”แƒ˜แƒ‘แƒšแƒ”แƒ‘แƒก pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒจแƒ˜ แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒšแƒ”แƒ˜แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒแƒก; match-label-แƒก แƒแƒ  แƒกแƒฃแƒ แƒก แƒ“แƒแƒ˜แƒœแƒแƒฎแƒแƒก แƒ‘แƒแƒขแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒšแƒ”แƒ˜แƒ‘แƒšแƒ”แƒ‘แƒ˜. แƒ แƒแƒ’แƒแƒ แƒช แƒฉแƒแƒœแƒก, แƒฃแƒคแƒ แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜แƒ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒก แƒแƒ แƒ˜แƒ•แƒ” แƒ”แƒขแƒแƒžแƒก. แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ› แƒคแƒแƒ แƒ›แƒ˜แƒ—แƒแƒช แƒ™แƒ˜, แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ; แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— แƒ”แƒขแƒ˜แƒ™แƒ”แƒขแƒ˜ แƒกแƒ˜แƒ˜แƒ“แƒแƒœ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒ— แƒ’แƒแƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก.

แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒ

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒ›แƒ” แƒ•แƒชแƒแƒ“แƒ” แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ GitHub Actions-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— (ssh-แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—, scp-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ docker-hub-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—) แƒ“แƒ แƒจแƒ”แƒ›แƒ˜แƒซแƒšแƒ˜แƒ แƒ•แƒ—แƒฅแƒ•แƒ, แƒ แƒแƒ›, แƒกแƒแƒ•แƒแƒ แƒแƒฃแƒ“แƒแƒ“, แƒ˜แƒžแƒแƒ•แƒ˜แƒ— แƒแƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒ–แƒแƒก, แƒ แƒแƒช แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒแƒฎแƒ แƒ˜แƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜. แƒแƒ แƒ˜แƒก.

แƒ›แƒแƒ›แƒ”แƒฌแƒแƒœแƒ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ”แƒ แƒ— แƒแƒ“แƒ’แƒ˜แƒšแƒ–แƒ” แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜, แƒแƒกแƒ” แƒ แƒแƒ›, แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒ•แƒแƒ—แƒแƒ•แƒกแƒแƒ— GitHub แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒจแƒ˜ (แƒ”แƒก แƒแƒ แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒ˜ แƒ‘แƒ˜แƒœแƒแƒ แƒฃแƒšแƒ˜ แƒจแƒ˜แƒœแƒแƒแƒ แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, npm, jar, docker).

แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“ แƒ“แƒ 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 แƒคแƒแƒ˜แƒšแƒ˜, แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒ’แƒแƒ›แƒแƒ•แƒ—แƒ•แƒแƒšแƒแƒ— แƒ’แƒ–แƒ GitHub แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜แƒกแƒ แƒ“แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก. แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฎแƒ แƒ˜แƒ™แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฏแƒ”แƒ  แƒแƒ  แƒจแƒ”แƒ’แƒ•แƒฎแƒ•แƒ”แƒ“แƒ แƒ˜แƒ:

  • แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ: echo โ€œ::set-output name=NAME::VALUEโ€ แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒกแƒแƒคแƒ”แƒฎแƒฃแƒ แƒ–แƒ”, แƒ แƒแƒ—แƒ แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒฌแƒแƒ™แƒ˜แƒ—แƒฎแƒ•แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒกแƒฎแƒ•แƒ แƒกแƒแƒคแƒ”แƒฎแƒฃแƒ แƒ–แƒ”.
  • แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒฌแƒ˜แƒœแƒ แƒกแƒแƒคแƒ”แƒฎแƒฃแƒ แƒ–แƒ” แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒแƒ› แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—: ${{ steps.global_env.outputs.DOCKERHUB_IMAGE_NAME }}
  • แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ GITHUB_REPOSITORY แƒชแƒ•แƒšแƒแƒ“แƒ˜ แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก แƒ“แƒ แƒ›แƒ˜แƒก แƒ›แƒคแƒšแƒแƒ‘แƒ”แƒšแƒก (โ€žแƒ›แƒคแƒšแƒแƒ‘แƒ”แƒšแƒ˜/แƒ แƒ”แƒžแƒ-แƒกแƒแƒฎแƒ”แƒšแƒ˜โ€œ). แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒแƒ› แƒฎแƒแƒ–แƒ˜แƒ“แƒแƒœ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒแƒ›แƒแƒ•แƒแƒญแƒ แƒแƒ—, แƒ’แƒแƒ แƒ“แƒ แƒกแƒแƒชแƒแƒ•แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒกแƒ, แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— bash แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒก: ${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 Packages Repository-แƒจแƒ˜:

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

แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒชแƒ˜แƒคแƒ แƒ”แƒ‘แƒก แƒ™แƒแƒ›แƒ˜แƒขแƒ˜แƒก SHA แƒฐแƒ”แƒจแƒ˜แƒ“แƒแƒœ - GITHUB_SHA แƒแƒฅ แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ˜แƒก แƒœแƒ˜แƒฃแƒแƒœแƒกแƒ”แƒ‘แƒ˜, แƒ—แƒฃ แƒแƒกแƒ”แƒ— แƒœแƒแƒ’แƒ”แƒ‘แƒแƒ‘แƒ”แƒ‘แƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒกแƒแƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ pull-แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—แƒแƒช. แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ, แƒ›แƒแƒจแƒ˜แƒœ SHA แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒ  แƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒแƒ“แƒ”แƒก แƒฐแƒ”แƒจแƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ•แƒฎแƒ”แƒ“แƒแƒ•แƒ— git แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜/แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ แƒฅแƒ›แƒœแƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒก แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ  แƒฐแƒ”แƒจแƒก, แƒ แƒแƒ—แƒ แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒ˜แƒชแƒ˜แƒšแƒแƒก แƒฉแƒ˜แƒฎแƒฃแƒ แƒ˜ แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜ PR-แƒจแƒ˜.

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒ—แƒฃ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒ“แƒ, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒฎแƒกแƒœแƒ˜แƒ— แƒžแƒแƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒก (https://github.com/antkorwin/github-actions/packages) แƒกแƒแƒชแƒแƒ•แƒจแƒ˜, แƒœแƒแƒฎแƒแƒ•แƒ— แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒแƒฎแƒแƒš แƒกแƒฃแƒ แƒแƒ—แƒก:

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒแƒฅ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒ“แƒแƒ™แƒ”แƒ แƒ˜แƒก แƒกแƒฃแƒ แƒแƒ—แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ.

แƒ แƒฉแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒแƒ› แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ. แƒ›แƒ” แƒแƒšแƒ‘แƒแƒ— แƒกแƒฎแƒ•แƒ แƒ“แƒ แƒแƒก แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘ แƒ˜แƒ›แƒแƒ–แƒ”, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ แƒ”แƒก systemd-แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—.

แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ• แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒฏแƒแƒœแƒ›แƒ แƒ—แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก GitHub Actions-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒฉแƒ•แƒ”แƒœแƒก แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก แƒแƒฅแƒ•แƒก แƒแƒฅแƒขแƒ˜แƒ•แƒแƒขแƒแƒ แƒ˜, แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ 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"}

แƒฉแƒ•แƒ”แƒœ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒแƒ•แƒแƒฌแƒ”แƒ แƒแƒ— แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒšแƒแƒ“ cron-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ—แƒฃ แƒ›แƒแƒฃแƒšแƒแƒ“แƒœแƒ”แƒšแƒแƒ“ แƒ˜แƒก แƒแƒ  แƒ’แƒ•แƒžแƒแƒกแƒฃแƒฎแƒแƒ‘แƒก, แƒ›แƒแƒจแƒ˜แƒœ แƒ’แƒแƒ›แƒแƒ’แƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ— แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒแƒก แƒขแƒ”แƒšแƒ”แƒ’แƒ แƒแƒ›แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—.

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜, แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ”แƒ แƒ™แƒ•แƒœแƒ”แƒœ, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒฃแƒจแƒ•แƒแƒ— cron แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ˜:

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

แƒ”แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ, แƒ•แƒ”แƒ แƒช แƒ™แƒ˜ แƒ“แƒแƒ•แƒ˜แƒฏแƒ”แƒ แƒ”แƒ‘, แƒ แƒแƒ› Github-แƒจแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒฏแƒ“แƒ”แƒ‘แƒ แƒ•แƒ”แƒ‘แƒฐแƒฃแƒ™แƒ”แƒ‘แƒจแƒ˜. แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜แƒ: help.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events-schedule

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒแƒ›แƒแƒฌแƒ›แƒแƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜ แƒฎแƒ”แƒšแƒ˜แƒ— curl-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—:

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 }}

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ— แƒขแƒ”แƒšแƒ”แƒ’แƒ แƒแƒ›แƒแƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ—แƒฃ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ แƒ•แƒ”แƒ  แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ“แƒ แƒฌแƒ˜แƒœแƒ แƒ”แƒขแƒแƒžแƒ–แƒ”. แƒจแƒ”แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒกแƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒ“ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— appleboy/telegram-action-แƒก; แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒ‘แƒแƒขแƒ˜แƒก แƒŸแƒ”แƒขแƒแƒœแƒ˜ แƒ“แƒ แƒฉแƒแƒขแƒ˜แƒก ID แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜: github.com/appleboy/telegram-action

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒแƒ  แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ— Github-แƒ–แƒ” แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ: URL แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒขแƒแƒ™แƒ”แƒœแƒ”แƒ‘แƒ˜ แƒขแƒ”แƒšแƒ”แƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ‘แƒแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ‘แƒแƒœแƒฃแƒก แƒขแƒ แƒ”แƒ™แƒ˜ - JIRA แƒ–แƒแƒ แƒ›แƒแƒชแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒ“แƒแƒ•แƒžแƒ˜แƒ แƒ“แƒ˜, แƒ แƒแƒ› JIRA-แƒจแƒ˜ แƒ“แƒแƒ•แƒ‘แƒ แƒฃแƒœแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ“แƒแƒ•แƒ‘แƒ แƒฃแƒœแƒ“แƒ˜แƒ—. แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒฏแƒ”แƒ  แƒ›แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒกแƒ˜แƒขแƒฃแƒแƒชแƒ˜แƒ แƒกแƒขแƒ”แƒœแƒ“-แƒแƒžแƒ”แƒ‘แƒ–แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ›แƒ แƒจแƒ”แƒฅแƒ›แƒœแƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ’แƒแƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒแƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜แƒก JIRA-แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ. แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ—แƒฃ แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ”แƒ แƒ— แƒแƒ“แƒ’แƒ˜แƒšแƒ–แƒ” แƒ’แƒแƒ™แƒ”แƒ—แƒ“แƒ, แƒฃแƒคแƒ แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ•แƒฌแƒ”แƒ แƒ— แƒ™แƒแƒ“แƒก IDE-แƒจแƒ˜, แƒ•แƒแƒ”แƒ แƒ—แƒ”แƒ‘แƒ— แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ”แƒ‘แƒก bitbucket-แƒจแƒ˜ แƒแƒœ GitHub-แƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฉแƒแƒ•แƒ แƒ—แƒแƒ•แƒ— แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒก Jira-แƒจแƒ˜, แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒแƒฎแƒแƒšแƒ˜ แƒคแƒแƒœแƒฏแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒฎแƒกแƒœแƒ. , แƒ–แƒแƒ’แƒฏแƒ”แƒ  แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒจแƒ”แƒ“แƒ˜แƒ— แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜ แƒ“แƒ แƒ.แƒจ. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒจแƒ•แƒ”แƒœแƒ˜แƒ•แƒ แƒแƒ“ แƒ’แƒแƒฎแƒกแƒแƒ•แƒ—, แƒ แƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ›แƒแƒจแƒ˜แƒœ แƒ“แƒแƒคแƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒฎแƒกแƒœแƒแƒก แƒแƒ–แƒ แƒ˜ แƒแƒ  แƒแƒฅแƒ•แƒก. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒ“แƒ˜แƒšแƒ˜แƒ— แƒกแƒแƒ“แƒ’แƒแƒ›แƒ–แƒ” แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒฎแƒแƒ แƒฏแƒแƒ— แƒ“แƒ แƒ แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒคแƒ˜แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒแƒ–แƒ”.

GitHub แƒแƒกแƒ”แƒ•แƒ” แƒ“แƒแƒ’แƒ•แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒแƒ› แƒ แƒฃแƒขแƒ˜แƒœแƒฃแƒš แƒแƒ›แƒแƒชแƒแƒœแƒแƒจแƒ˜; แƒ“แƒแƒ›แƒฌแƒงแƒ”แƒ‘แƒ—แƒแƒ—แƒ•แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ˜ แƒ™แƒแƒ“แƒ˜_แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ˜แƒก แƒกแƒ•แƒ”แƒขแƒจแƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ’แƒแƒ›แƒแƒ•แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ— pull-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก. แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒแƒ แƒ˜แƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒ•แƒ”แƒœแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒชแƒ•แƒ:

[ะธะผั ะฟั€ะพะตะบั‚ะฐ]-[ะฝะพะผะตั€ ั‚ะฐัะบะฐ]-ะฝะฐะทะฒะฐะฝะธะต

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฃ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜ "GitHub Actions" แƒแƒ แƒ˜แƒก GA, แƒ›แƒแƒจแƒ˜แƒœ GA-8-jira-bot แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜ GA-8 แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“.

JIRA-แƒกแƒ—แƒแƒœ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ Atlassian-แƒ˜แƒก แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒแƒœ แƒกแƒ แƒฃแƒšแƒงแƒแƒคแƒ˜แƒšแƒ˜, แƒฃแƒœแƒ“แƒ แƒ˜แƒ—แƒฅแƒ•แƒแƒก, แƒ แƒแƒ› แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒแƒ  แƒ’แƒแƒ›แƒแƒ›แƒ˜แƒ•แƒ˜แƒ“แƒ. แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒ—, แƒ•แƒ˜แƒœแƒช แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒแƒ“ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ“แƒ แƒแƒฅแƒขแƒ˜แƒฃแƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ.

แƒฏแƒ”แƒ  แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒฎแƒ•แƒ˜แƒ“แƒ”แƒ— 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}}

แƒ—แƒฃ แƒ”แƒซแƒ”แƒ‘แƒ— GitHub แƒ‘แƒแƒ–แƒแƒ แƒ–แƒ”, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ แƒแƒ› แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ” แƒ›แƒแƒ›แƒ˜แƒฌแƒ˜แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ“แƒแƒ›แƒ”แƒฌแƒ”แƒ แƒ grep-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒคแƒ˜แƒšแƒ˜แƒแƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ“แƒ’แƒแƒœ Atlassian-แƒ˜แƒก แƒแƒ› แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก แƒแƒ แƒแƒœแƒแƒ˜แƒ แƒแƒ“ แƒแƒ  แƒกแƒฃแƒ แƒ“แƒ แƒฉแƒ”แƒ›แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ–แƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ. , แƒ˜แƒ›แƒ˜แƒก แƒ’แƒแƒกแƒแƒ แƒ™แƒ•แƒ”แƒ•แƒแƒ“, แƒ—แƒฃ แƒ แƒ แƒ˜แƒงแƒ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒ˜แƒฅ - แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒฎแƒแƒœแƒก, แƒ•แƒ˜แƒ“แƒ แƒ” แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒก แƒ™แƒ”แƒ—แƒ”แƒ‘แƒ แƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒ—.

แƒ แƒฉแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ›แƒแƒชแƒแƒœแƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ โ€žแƒ™แƒแƒ“แƒ˜แƒก แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ˜แƒกโ€œ แƒกแƒ•แƒ”แƒขแƒจแƒ˜, แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก:

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

แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ GitHub-แƒ–แƒ”, แƒ แƒแƒช แƒ›แƒแƒก แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒแƒ แƒ˜แƒก แƒฌแƒ˜แƒœแƒ แƒ”แƒขแƒแƒžแƒ–แƒ” แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜แƒก ID แƒ“แƒ แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒแƒชแƒ˜แƒ JIRA-แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ— แƒ–แƒ”แƒ›แƒแƒ—.

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒแƒœแƒแƒšแƒแƒ’แƒ˜แƒฃแƒ แƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒแƒ— แƒแƒ›แƒแƒชแƒแƒœแƒ”แƒ‘แƒ˜ แƒ›แƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒกแƒแƒก แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒฆแƒแƒœแƒ˜แƒกแƒซแƒ˜แƒ”แƒ‘แƒ”แƒ‘แƒ˜ GitHub แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒœแƒแƒ™แƒแƒ“แƒ˜แƒ“แƒแƒœ. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒคแƒแƒœแƒขแƒแƒ–แƒ˜แƒแƒกแƒ แƒ“แƒ แƒ แƒฃแƒขแƒ˜แƒœแƒฃแƒšแƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ–แƒ”.

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ”แƒ‘แƒ˜

แƒ—แƒฃ แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒแƒ•แƒ— แƒ™แƒšแƒแƒกแƒ˜แƒ™แƒฃแƒ  DEVOPS แƒ“แƒ˜แƒแƒ’แƒ แƒแƒ›แƒแƒก, แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒคแƒแƒ แƒ”แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒขแƒแƒžแƒ˜, แƒ’แƒแƒ แƒ“แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ, แƒ•แƒคแƒ˜แƒฅแƒ แƒแƒ‘, แƒ—แƒฃ แƒกแƒชแƒแƒ“แƒ”แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ แƒแƒ˜แƒ›แƒ” แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ แƒ‘แƒแƒ–แƒแƒ แƒ–แƒ” แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ›แƒกแƒแƒฎแƒฃแƒ แƒ—แƒแƒœ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜ แƒจแƒ”แƒ›แƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ. แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒšแƒ˜แƒแƒœแƒ˜ แƒ“แƒ แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒขแƒแƒœแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ”.

แƒฏแƒแƒฏแƒแƒฎแƒ”แƒ—แƒ˜แƒก แƒฌแƒ แƒ”แƒ”แƒ‘แƒ˜ GitHub แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— (CI/CD แƒ›แƒ˜แƒšแƒกแƒแƒ“แƒ”แƒœแƒ˜แƒก แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒ Java แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก)

แƒ“แƒแƒ“แƒ”แƒ‘แƒ˜แƒ—แƒ˜:

  • แƒ‘แƒแƒ–แƒแƒ แƒ˜ แƒ›แƒ–แƒ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ”แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ’แƒแƒ แƒ˜แƒ. แƒ›แƒแƒ— แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒแƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ“แƒแƒฎแƒ”แƒ“แƒแƒ— แƒฌแƒงแƒแƒ แƒแƒก แƒ™แƒแƒ“แƒก, แƒ แƒแƒ—แƒ แƒ’แƒแƒ˜แƒ’แƒแƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ›แƒแƒแƒ’แƒ•แƒแƒ แƒแƒ— แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒแƒœ แƒ’แƒแƒ›แƒแƒแƒฅแƒ•แƒ”แƒงแƒœแƒแƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ แƒแƒ•แƒขแƒแƒ แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  GitHub แƒกแƒแƒชแƒแƒ•แƒจแƒ˜.
  • แƒแƒกแƒแƒ›แƒ‘แƒšแƒ”แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ˜แƒก แƒจแƒ”แƒ แƒฉแƒ”แƒ•แƒ: Linux, mac os, windows แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ.
  • Github Packages แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜ แƒ แƒแƒ› แƒแƒ แƒ˜แƒก, แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ”แƒ แƒ— แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒกแƒ”แƒ แƒคแƒ˜แƒœแƒ’แƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒคแƒแƒœแƒฏแƒ แƒ”แƒ‘แƒจแƒ˜, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒแƒฃแƒกแƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒแƒœ แƒแƒ แƒ˜ แƒ“แƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒ“แƒ˜แƒฃแƒกแƒจแƒ˜แƒ แƒ“แƒ แƒ˜แƒ“แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ GitHub Actions-แƒ—แƒแƒœ. Docker แƒ แƒ”แƒ”แƒกแƒขแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ แƒฃแƒคแƒแƒกแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒจแƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒ™แƒแƒ แƒ’แƒ˜ แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒแƒ.
  • GitHub แƒ›แƒแƒšแƒแƒ•แƒก แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒ”แƒ‘แƒก Build แƒŸแƒฃแƒ แƒœแƒแƒšแƒ”แƒ‘แƒจแƒ˜, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒžแƒแƒ แƒแƒšแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“ แƒแƒ แƒช แƒ˜แƒกแƒ” แƒกแƒแƒจแƒ˜แƒœแƒ”แƒšแƒ˜แƒ. แƒงแƒ•แƒ”แƒšแƒ แƒฉแƒ”แƒ›แƒ˜ แƒ”แƒฅแƒกแƒžแƒ”แƒ แƒ˜แƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒ“แƒ แƒแƒก, แƒ›แƒ” แƒ•แƒ”แƒ แƒแƒกแƒแƒ“แƒ”แƒก แƒจแƒ”แƒ•แƒซแƒ”แƒšแƒ˜ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒก แƒกแƒฃแƒคแƒ—แƒ แƒกแƒแƒฎแƒ˜แƒ— แƒ“แƒแƒœแƒแƒฎแƒ•แƒ แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜.
  • แƒฃแƒคแƒแƒกแƒ แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

Cons:

  • YML, แƒ™แƒแƒ แƒ’แƒ˜, แƒ›แƒ” แƒ˜แƒก แƒแƒ  แƒ›แƒแƒ›แƒฌแƒแƒœแƒก. แƒแƒกแƒ”แƒ— แƒœแƒแƒ™แƒแƒ“แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ’แƒแƒ•แƒ แƒชแƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ commit แƒ›แƒ”แƒกแƒ˜แƒฏแƒ˜, แƒ แƒแƒช แƒ›แƒแƒฅแƒ•แƒก แƒแƒ แƒ˜แƒก โ€œfix yml formatโ€, แƒฎแƒแƒœ แƒกแƒแƒ“แƒ›แƒ” แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ‘แƒ แƒฉแƒแƒœแƒแƒ แƒ—แƒ˜แƒก แƒ“แƒแƒ“แƒ”แƒ‘แƒ, แƒฎแƒแƒœ แƒแƒ แƒแƒกแƒฌแƒแƒ  แƒฎแƒแƒ–แƒ–แƒ” แƒฌแƒ”แƒ . แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ”แƒ™แƒ แƒแƒœแƒ˜แƒก แƒฌแƒ˜แƒœ แƒฏแƒ“แƒแƒ›แƒ แƒžแƒ แƒแƒขแƒ แƒแƒขแƒแƒ แƒ˜แƒ—แƒ แƒ“แƒ แƒกแƒแƒฎแƒแƒ–แƒแƒ•แƒ”แƒ‘แƒ˜แƒ— แƒแƒ  แƒแƒ แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ.
  • แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ, แƒœแƒแƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ แƒจแƒ”แƒ—แƒแƒœแƒฎแƒ›แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ—, แƒแƒฆแƒ“แƒ’แƒ”แƒœแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ“แƒ แƒ™แƒแƒœแƒกแƒแƒšแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒขแƒแƒœแƒ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒแƒ“ แƒแƒ แƒ˜แƒก โ€žแƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒ“แƒแƒแƒญแƒแƒ แƒ‘แƒ”แƒ—โ€œ แƒ™แƒแƒขแƒ”แƒ’แƒแƒ แƒ˜แƒแƒก; แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒ˜แƒฉแƒ•แƒ”แƒฃแƒšแƒ˜ แƒฎแƒแƒ แƒ— แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜ IDEA-แƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ แƒแƒ˜แƒ›แƒ”แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒ•แƒ. .
  • แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ–แƒ”, แƒ—แƒฃ แƒ›แƒแƒก Docker-แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒฎแƒแƒšแƒแƒ“ Javascript แƒแƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒ”แƒก แƒ’แƒ”แƒ›แƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ” แƒกแƒฎแƒ•แƒ แƒ แƒแƒ›แƒ”แƒก แƒ›แƒ˜แƒ แƒฉแƒ”แƒ•แƒœแƒ˜แƒ js-แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“.

แƒจแƒ”แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒกแƒแƒชแƒแƒ•แƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒ— แƒแƒ แƒ˜แƒก แƒแƒฅ: github.com/antkorwin/github-actions

แƒ›แƒแƒ›แƒแƒ•แƒแƒš แƒ™แƒ•แƒ˜แƒ แƒแƒก แƒ•แƒ˜แƒ—แƒแƒ›แƒแƒจแƒ”แƒ‘ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ Heisenbug 2020 Piter แƒ™แƒแƒœแƒคแƒ”แƒ แƒ”แƒœแƒชแƒ˜แƒแƒ–แƒ”. แƒ›แƒ” แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒ— แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒแƒ•แƒ˜แƒชแƒ˜แƒšแƒแƒ— แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ”แƒ‘แƒ˜ แƒขแƒ”แƒกแƒขแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ’แƒแƒ’แƒ˜แƒ–แƒ˜แƒแƒ แƒ”แƒ‘แƒ— Java แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒจแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒ”แƒ‘แƒก!

แƒฌแƒงแƒแƒ แƒ: www.habr.com