
เบเปเบญเบเบกเบฑเบเบเบฐเบเปเบญเบเบชเปเบฒเบเบเปเปเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบ Java. เบเบฒเบเบเบฑเปเบเบกเบฑเบเปเบเบฑเบเปเบซเบผเปเบเปเบเบตเบ, เบเบฒเบเบเบฑเปเบเบกเบฑเบเบเปเปเปเบกเปเบ. เบเปเปเบเบปเบเบกเบฒเบเบตเปเบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบเบฑเบเบชเบดเบเปเบเบเบตเปเบเบฐเบเบฐเบเบฒเบเบฒเบกเบเปเบฒเบเบเบฒเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบเบญเบเบเปเบญเบเบเบฒเบ Travis-CI เปเบฅเบฐ TeamCity เปเบเบซเบฒ GitHub Actions, เปเบฅเบฐเบเบตเปเปเบกเปเบเบชเบดเปเบเบเบตเปเบญเบญเบเบกเบฒเบเบฒเบเบกเบฑเบ.
เบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบญเบฑเบเบเบฐเปเบเบกเบฑเบ?
เบซเบเปเบฒเบเปเบฒเบญเบดเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบเบเบเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเบญเบฑเบเบเบฐเปเบเบกเบฑเบ, เปเบซเปเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบฐเบซเบเบฒเบเบเปเบญเบเปเบ Spring boot / Java 11 / Maven. เบชเปเบฒเบฅเบฑเบเบเบธเบเบเบฐเบชเบปเบเบเบญเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเปเบชเบปเบเปเบเบเบฑเบเปเบซเบเบเบปเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบฑเบเบซเบกเบปเบ;
เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบดเปเบเปเบซเบผเปเบเบเปเปเบกเบนเบเปเบเปเบเบตเปเบเบตเป: เบเบฑเปเบเบเบญเบเบเบฑเบเบซเบกเบปเบเบเบญเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเปเปเปเบกเปเบเบชเบฐเบเปเบญเบเปเบซเปเปเบซเบฑเบเบขเบนเปเปเบเบเปเบฒเบฎเปเบญเบเบเปเบเบถเบเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบเบเบตเป.
JIRA เปเบฅเบฐเบเบฒเบเบงเบฒเบเปเบเบ
เบกเบฑเบเปเบเบฑเบเบกเบนเบเบเปเบฒเบเบตเปเบเบญเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบฑเบเบเบฐเปเบเป JIRA เปเบเบฑเบเบเบปเบงเบเบดเบเบเบฒเบกเบเบฑเบเบซเบฒ, เบเบฑเปเบเบเบฑเปเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบเบเบฐเบเบฒเบเปเบเบเบเปเบฒเบเบซเบฒเบเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบเบเบตเปเปเบฅเบฐเปเบเบตเปเบกเบเบฑเบเบซเบฒเบเปเบฒเบญเบดเบเบขเบนเปเบเบตเปเบเบฑเปเบ:

เปเบฅเบฑเบเบเปเบญเบเบเปเปเบกเบฒเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบเบทเบเปเบเบซเบฒเบชเบดเปเบเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบเบเบตเป JIRA เปเบฅเบฐ GitHub เบชเบฒเบกเบฒเบเบชเบฐเปเบซเบเบตเปเบเบเบฒเบเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบ.
เบเบงเบเปเบฎเบปเบฒเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบฒเบเบเบฐเบเบญเบเปเบเบเบเบฒเบ
เปเบเบโเบเบฒเบโเบเบปเบโเบชเบญเบโเบเบญเบโเบเบงเบโเปเบฎเบปเบฒโเปเบกเปเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบชเปเบฒเบโเปเบเบ mavenโ, เบชเบฐโเบเบฑเปเบโเบเบฒเบโเบเปเปโเบชเปเบฒเบโเบกเบฑเบโเปเบกเปเบโเบเปเบญเบโเบเปเบฒเบโเบเปเบฒเบโเบเบฒเบโ, เบเบฑเบโเบซเบกเบปเบโเบเบตเปโเบเบงเบโเปเบฎเบปเบฒโเบเปเบญเบโเบเบฒเบโเปเบกเปเบโเบเบธเบโเบเบตเปโเบชเบฐโเบญเบฒเบ mvnโ.
เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเปเปเบเบเปเบเป Github Actions, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบญเบเบชเปเบฒเบเปเบเบฅเปเปเบ repository เบญเบฐเบเบดเบเบฒเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ, เบเบตเปเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเบเปเบงเบเปเบเบฅเป yml เบเบปเบเบเบฐเบเบด, เบเปเบญเบเบเปเปเบชเบฒเบกเบฒเบเปเบงเบปเปเบฒเบงเปเบฒเบเปเบญเบเบกเบฑเบ "เบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบก yml", เปเบเปเบชเบดเปเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเป - เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบกเบฑเบเบขเบนเปเปเบ .github/ directory workflow/ file 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 โ เบเบตเปเบเบญเบเบงเปเบฒเบเบฑเปเบเบเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบตเปเบเปเบญเบเบเบทเบเปเบเบตเบเปเบเปเบเบธเบเบเบฑเปเบเบเบตเปเบเบปเบเบเบฑเบเปเบเบซเบฒเปเบกเปเปเบเบ เปเบฅเบฐเบชเปเบฒเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบเบถเบ.
เบเปเปเปเบเบเบตเปเปเบกเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเบเบญเบเบงเบฝเบเบเบฒเบ (เบงเบฝเบเปเบฎเบฑเบเบเบฒเบเบเปเบฒ) เปเบฅเบฐโเบเบฑเปเบโเบเบญเบโเบเบฒเบโเบเบฐโเบเบดโเบเบฑเบ (เบเบฑเปเบเบเบญเบ) เบชเปเบฒโเบฅเบฑเบโเปเบเปโเบฅเบฐโเบงเบฝเบโเบเบฒเบโ.
เปเบฅเปเบ-on - เปเบเบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเปเบฅเบทเบญเบ OS เปเบเบปเปเบฒเบซเบกเบฒเบ, เปเบเบฑเบเปเบฅเบทเปเบญเบเปเบเบเบเบตเป, เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบฅเบทเบญเบ Mac OS, เปเบเปเปเบ repositories เบชเปเบงเบเบเบปเบงเบเบตเปเปเบกเปเบเบฅเบฒเบเบฒเปเบเบเบซเบผเบฒเบ (เปเบกเบทเปเบญเบเบฝเบเบเบฑเบ Linux).
เบเบฒเบเบเปเบฒเปเบเป เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเปเบเปเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบญเบทเปเบเปเบเบทเบเปเบซเบกเป, เบเบปเบงเบขเปเบฒเบเปเบเบฑเปเบ, เบเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบเบฐเบเบดเบเบฑเบ / setup-java เบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบดเบเบเบฑเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบชเปเบฒเบฅเบฑเบ Java 11.
เบเปเบงเบเบเบงเบฒเบกเบเปเบงเบเปเบซเบผเบทเบญเบเบญเบ เบเบฑเบ เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบฒเบฅเบฒเบกเบดเปเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเบตเบเบเบปเบงเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ, เบเบตเปเบชเปเบฒเบเบฑเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบกเปเบเบเบฒเบเปเบเปเบเบฝเบเบเบตเปเบเบฐเบเบทเบเบชเบปเปเบเบเปเปเบเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ.
เบเบฑเบเบซเบกเบปเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบกเปเบเปเบเบทเปเบญเบเปเบฒเปเบเบตเบเปเบเบเบเบฒเบเบเปเปเบชเปเบฒเบเปเบ Maven: run: mvn -B clean package เบเบธเบ -B เปเบงเบปเปเบฒเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบฎเบนเบเปเบเบเบเบตเปเบเปเปเบกเบตเบเบฒเบเปเบเปเบเบญเบเปเบเบทเปเบญเปเบซเป maven เบเบฑเบเบเบตเบเบฑเบเปเบเบเปเปเบเปเบญเบเบเบฒเบเบเบตเปเบเบฐเบเบฒเบกเบเบงเบเปเบฎเบปเบฒเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบ

เบเบดเปเบเปเบซเบเป! เปเบเบเบฑเบเบเบธเบเบฑเบ, เบเบธเบเปเบเบฑเปเบเบเบตเปเบเปเบฒเบเปเบซเปเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒเบเบฑเบเปเบกเปเบเบปเบ, เบเบฒเบเบเปเปเบชเปเบฒเบเปเบเบเบเบฒเบเปเบฅเบตเปเบกเบเบปเปเบ.
เบเบฒเบเปเบเบตเบเบเบปเบงเบเบฒเบเบเบปเบเบชเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ
เบเบฒเบเบเบธเบกเบเบธเบกเปเบกเปเบเบเบต, เปเบเปเปเบเบเบงเบฒเบกเปเบเบฑเบเบเบดเบ, เปเบเบเบเบฒเบเบชเบฒเบกเบฒเบเบเบฐเบเบญเบเปเบเปเบขเปเบฒเบเบเบญเบเปเบ, เปเบเปเบเปเปเปเบฎเบฑเบเบงเบฝเบ. เบเบฑเปเบเบเบฑเปเบ, เบเบฑเปเบเบเบญเบเบเปเปเปเบเปเบกเปเบเปเบเบทเปเบญเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบฒเบเบเบปเบเบชเบญเบเปเบฅเปเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบกเบฑเบเบเปเบญเบเบเปเบฒเบเบชเบฐเบเบงเบเบเบตเปเบเบฐเปเบเบดเปเบเบเบปเบเบเบญเบเบเบฒเบเบเปเบฒเบเบเบฒเบเบเบปเบเบชเบญเบเปเบกเบทเปเบญเบเปเบฒเบเปเบฎเบฑเบเบเบฒเบเบเบปเบเบเบงเบ PR - เบเปเบฒเบเบฎเบนเปเปเบเปเบเบญเบเบงเปเบฒเบเบฒเบเบเบปเบเบชเบญเบเบเปเบฒเบเปเบฅเบฐเบเปเปเบกเบตเปเบเบฅเบทเบกเบเบตเปเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบชเบฒเบเบฒเบเบญเบเบเบงเบเปเบเบปเบฒเบเปเบญเบเบเบตเปเบเบฐเปเบฎเบฑเบเบเบฒเบเบฅเบงเบก.
เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเบตเบเบเบฒเบเบเบปเบเบชเบญเบเปเบเปเบงเบฅเบฒเบเบตเปเบชเปเบฒเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบเบถเบเปเบฅเบฐ merge เปเบเบปเปเบฒเปเบเปเบเบเบปเปเบเบชเบฐเบเบฑเบ, เปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบตเปเบกเบเบฒเบเบชเปเบฒเบเบเบปเบเบฅเบฒเบเบเบฒเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเบธเปเบกเบเบญเบเบฅเบฐเบซเบฑเบ.
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 เบชเบปเบกเบเบปเบเบเบฑเบ plugin jacoco. codecov เบกเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบญเบเบเบปเบเปเบญเบ, เปเบเปเบกเบฑเบเบเปเบญเบเบเบฒเบ token เปเบเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเปเบฒเบฎเปเบญเบเบเปเบเบถเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ:
${{ secrets.CODECOV_TOKEN }} - เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบซเบฑเบเบเบฒเบเบเปเปเบชเปเบฒเบเบเบตเปเบซเบผเบฒเบเบเบงเปเบฒเบซเบเบถเปเบเบเบฑเปเบ, เบเบงเบฒเบกเบฅเบฑเบเปเบกเปเบเบเบปเบเปเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบงเบฒเบกเบฅเบฑเบเปเบ GitHub, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบฝเบเบฅเบฐเบซเบฑเบเบเปเบฒเบ / tokens / hosts / urls เปเบฅเบฐเบเปเปเบกเบนเบเบญเบทเปเบเปเบเบตเปเบเปเปเบเบงเบเบเบทเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเบเบฒเบเบฅเบฐเบซเบฑเบ repository.
เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเบปเบงเปเบเบเปเปเบเบฑเบเบเบงเบฒเบกเบฅเบฑเบเปเบเบเบฒเบเบเบฑเปเบเบเปเบฒ repository เปเบ GitHub:

เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบ token เปเบเปเบเบตเป เบซเบผเบฑเบเบเบฒเบเบเบฒเบเบญเบฐเบเบธเบเบฒเบเบเปเบฒเบ GitHub, เปเบเบทเปเบญเปเบเบตเปเบกเปเบเบเบเบฒเบเบชเบฒเบเบฒเบฅเบฐเบเบฐ, เบเปเบฒเบเบเบฝเบเปเบเปเบเปเบญเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบเบฑเปเบเบเบตเป: /[เบเบทเป repo]. เบชเบฒเบกเบฒเบเปเบเบตเปเบกเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบชเปเบงเบเบเบปเบงเปเบเป;

เปเบเบตเปเบก plugin 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 bot เบเบฐเปเบเบปเปเบฒเปเบเปเบเปเบเปเบฅเบฐเบเปเบฒเบฎเปเบญเบเบเปเบเบถเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบฅเบฐเปเบเบตเปเบกเปเบชเบฑเปเบเบชเบฐเปเบเบเบเบฒเบเบเปเบฝเบเปเบเบเบเบฒเบเบเบธเปเบกเบเบญเบ:

เบกเบฒเปเบเบตเปเบกเปเบเบทเปเบญเบเบงเบดเปเบเบฒเบฐเบชเบฐเบเบดเบ
เปเบเปเบเบเบเบฒเบเปเบซเบผเปเบเปเบเบตเบเบชเปเบงเบเปเบซเบเปเบเบญเบเบเปเบญเบเบเปเบญเบเปเบเป sonar cloud เบชเปเบฒเบฅเบฑเบเบเบฒเบเบงเบดเปเบเบฒเบฐเบฅเบฐเบซเบฑเบเบชเบฐเบเบดเบ, เบกเบฑเบเบเปเบญเบเบเปเบฒเบเบเปเบฒเบเบเบตเปเบเบฐเปเบเบทเปเบญเบกเบเปเปเบเบฑเบ travis-ci. เบเบฑเปเบเบเบฑเปเบเบกเบฑเบเปเบเบฑเบเบเบฑเปเบเบเบญเบเบเบตเปเบกเบตเปเบซเบเบเบปเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเปเบเบทเปเบญเบเบเปเบฒเบเปเบเบซเบฒ GitHub Actions เปเบเบทเปเบญเปเบฎเบฑเบเปเบเบฑเปเบเบเบฝเบงเบเบฑเบ. เบเบฐเบซเบผเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเปเบกเปเบเปเบเบฑเบเบชเบดเปเบเบเบตเปเปเบขเบฑเบ, เปเบเปเปเบงเบฅเบฒเบเบตเปเบกเบฑเบเปเบฎเบฑเบเปเบซเปเบเปเบญเบเบฅเบปเบเปเบฅเบฑเบเบเปเบญเบ, เปเบเบฒเบฐเบงเปเบฒเบญเบญเบเบเบฒเบเบเบดเปเบชเบเปเบญเบเปเบเปเบเบปเบเปเบซเบฑเบเบเบฒเบเบเบฐเบเปเบฒเบเบตเปเบเปเบญเบเบเปเบญเบเบเบฒเบเปเบฅเบฐเปเบเบตเปเบกเบกเบฑเบเปเบเบปเปเบฒเปเบเบเบฐเบเบงเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบ. เปเบเปเบกเบฑเบเปเบเปเบซเบฑเบเบญเบญเบเบงเปเบฒ sonar เบเปเปเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเบเบเปเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบงเบดเปเบเบฒเบฐเปเบเบเบเบฒเบเบเปเบฝเบงเบเบฑเบ maven เบซเบผเบท gradle. เปเบเปเบเบญเบ, เบเบตเปเปเบกเปเบเบเบฝเบเบขเบนเปเปเบเปเบญเบเบฐเบชเบฒเบ, เปเบเปเบงเปเบฒเปเบเบญเปเบฒเบเบกเบฑเบ?!
เบกเบฑเบเปเบเบฑเบเปเบเบเปเปเปเบเปเปเบเบเบเปเบฒเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบฎเบฑเบเบกเบฑเบเบเปเบฒเบ plugin 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 - เบชเบฒเบกเบฒเบเบฎเบฑเบเปเบเปเบเบตเป เปเบฅเบฐเบเปเบฒเบเบเปเบญเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบเบกเบฑเบเบขเบนเปเปเบเบเบงเบฒเบกเบฅเบฑเบ. GITHUB_TOKEN - เบเบตเปเปเบกเปเบ token เปเบเบเบปเบงเบเบตเป GitHub เบชเปเบฒเบเบเบถเปเบ, เปเบเบเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเบเบญเบ sonarcloud [bot] เบเบฐเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบ Git เปเบเบทเปเบญเบเปเบญเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเบเปเปเบเบงเบฒเบกเปเบเบเปเบฒเบฎเปเบญเบเบเปเบเบถเบ.
Dsonar.projectKey โ เบเบทเปโเบเบญเบโเปเบเบโเบเบฒเบโเปเบ sonarโ, เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเปเบเบดเปเบโเปเบเปโเปเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโเปเบเบโเบเบฒเบโ.
Dsonar.organization โ เบเบทเปโเบเบญเบโเบญเบปเบโเบเบฒเบโเบเบฑเบโเบเบฑเปเบโเบเบฒเบ GitHubโ.
เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบเบฒเบเบฎเปเบญเบเบเปเบเบถเบเปเบฅเบฐเบฅเปเบเปเบฒ sonarcloud [bot] เปเบเบปเปเบฒเบกเบฒเปเบเบเปเบฒเปเบซเบฑเบ:

เบเบฒเบเบเบธเปเบกเบเบญเบเบเบฒเบเบเปเบญเบเบเบปเบง
เบเบฒเบโเบเปเปโเบชเปเบฒเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโ, เบเบฒเบโเบเบปเบโเบชเบญเบโเปเบเปโเบฎเบฑเบโเบเบฒเบโเบเปเบฒโเปเบเบตเบโเบเบฒเบโ, เปเบฅเบฐโเบเบงเบโเปเบฎเบปเบฒโเบชเบฒโเบกเบฒเบโเปเบฎเบฑเบโเปเบซเปโเบเบฒเบโเบเปเบญเบโ. เปเบซเปเปเบเบดเปเบเบงเบดเบเบตเบเบฒเบ GitHub Actions เบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบซเปเบเบฒเบเบเบฑเบเบเบฒเบเบเบฒเบเบเปเบญเบเบเบปเบงเบเปเบฒเบเบเบถเปเบเบซเบผเบฒเบ.
เปเบเบเปเบญเบเปเบฎเบฑเบเบงเบฝเบ, เบเปเบญเบเบกเบตเปเบเบเบเบฒเบเบเบตเปเบกเบตเบเบทเปเบเบเบฒเบเบฅเบฐเบซเบฑเบเบขเบนเปเปเบ bitbucket (เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเปเบฒเบเบเบทเปเบเปเบฅเบทเปเบญเบเบเบฑเปเบ "เบเปเบญเบเบเบฝเบเปเบชเป bitbucket เปเบเบกเบทเป, เบชเบฑเบเบเบฒเบเบฑเบ GitHub เปเบเบเบญเบเบเบฒเบเบเบทเบ"). เปเบเปเบซเบเปเบฒเปเบชเบเบเบฒเบ, bitbucket เบเปเปเบกเบตเปเบเบทเปเบญเบเบกเบทเบเบฒเบเบเบธเปเบกเบเบญเบเบเบฒเบเบเปเบญเบเบเบปเบง. เบเบตเปเปเบกเปเบเบเบฑเบเบซเบฒ, เปเบเบฒเบฐเบงเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบญเบเปเบเปเบฅเบฐเบเบฑเปเบ, เบเปเบฒเบเบเปเบญเบเบชเปเบฒเบเบซเบเปเบฒเปเบ confluence เบเปเบงเบเบเบปเบเปเบญเบเปเบฅเบฐเบเบดเปเบกเบฅเบฑเบเบชเบฐเบเบฐเบเบฑเบเบซเบกเบปเบเบเบตเปเบฅเบงเบกเบขเบนเปเปเบเบเบฒเบเบเปเบญเบเบเบฑเปเบ, เบเบปเปเบเบซเบฒเบเปเบฒเบเบงเบฑเบเบเบญเบเบเบดเบเปเบ, เบงเบฝเบเบเบฒเบเปเบ jira, commits เปเบ repository. เบกเบตเปเบญเบเบฒเบเบซเบผเบฒเบเบเบตเปเบเบฐเปเบฎเบฑเบเบเบดเบเบเบฒเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบฅเบทเบกเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบซเบผเบทเปเบเบปเปเบฒเปเบเปเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเปเบญเบเบญเบญเบเบกเบฒเปเบกเบทเปเบญเบเบตเปเบเปเบฒเบเบกเบฒ, เบเบฒเบเบเบฑเปเบเบกเบฑเบเบเบฝเบเปเบเปเบเปเปเบเบฑเบเปเบเบเบงเปเบฒเบเบฒเบเบเบฑเบเบเบฐเปเบเบเบเบฒเบเบฎเปเบญเบเบเปเบเบถเบเปเบเบฑเบ - เบกเบฑเบเปเบเบฑเบเบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเบซเบผเบทเบเบฒเบเปเบเปเปเบ bug, เบซเบผเบทเบเบฒเบเปเบเปเปเบเบเบฒเบเบเบปเบเบชเบญเบ, เบซเบผเบท. เบเบฒเบโเบชเบดเปเบโเบเบฒเบโเบขเปเบฒเบโเบเบทเปเบโเบเบฒเบโเปเบเบโเบฅเปเบฒเบโ.
เบเบฒเบเบเบฐเบเบดเบเบฑเบ GitHub เบชเบฒเบกเบฒเบเบเปเบงเบเบเบงเบเปเบฎเบปเบฒเปเบเปเปเบเบงเปเบ? เบกเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบต - เบเบฒเบเบเปเบญเบเบเบปเบงเบฎเปเบฒเบ, เบกเบฑเบเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบฎเบนเบเปเบเบเปเบเบฅเปเบเบฑเบเบเบถเบเบเบฒเบเบเปเบญเบเปเบเบทเปเบญเบเบฑเปเบเบเปเบฒเบเบฐเปเบเบเบเบญเบเบเปเบฒเบฎเปเบญเบเบเปเบเบถเบเปเบฅเบฐเบเบฑเบเบเบธเปเบกเบญเบฑเบเบเบฐเปเบเบกเบฑเบเปเบเปเบเบฅเปเบเบฑเบเบเบถเบเบเบฒเบเบเปเบญเบเบเบปเบง:

เบเบปเบงเบขเปเบฒเบเปเบกเปเปเบเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบปเบเบฅเบฒเบเบเบฒเบ (.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 }}
เบเบฒเบเบฎเปเบญเบเบเปเบเบถเบเบเบฑเบเบซเบกเบปเบเบเบฒเบเบเบตเปเปเบเบเบฐเบเบทเบเปเบเบฑเบเบเปเบฒเปเบเบเบฑเบเบเบถเบเบเบฒเบเบเปเบญเบเบญเบฑเบเบเบฐเปเบเบกเบฑเบ - magic!
เปเบเบเบตเปเบเบตเปเบเปเบฒเบเบฒเบกเบญเบฒเบเบเบฐเปเบเบตเบเบเบทเปเบ: เบเบฐเปเบเบฑเบเปเบเบงเปเบเบเปเบฒเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบฅเบทเบกเปเบชเป tags เปเบ PR? เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบกเบฑเบเบเปเปเบเบฑเบเปเบเบเบงเปเบฒเบเบฐเปเบเบเปเบเบเบตเปเบเบฐเปเบชเปเบกเบฑเบ, เปเบฅเบฐเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเบเปเบฒเบเบเบฐเบเปเบญเบเบเบฑเบเบเบฒเบเบเบฑเบเบกเบฑเบเบเปเบงเบเบเบปเบเปเบญเบ, เปเบเบเปเบเปเบฅเบฐ PR เปเบเบเบเปเบฒเบเบซเบฒเบ. เปเบเบทเปเบญเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเปเบเปเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบญเบทเปเบ - เบเบฒเบเบเบงเบเบชเบญเบเบเปเบฒเบ - เบกเบฑเบเบเบงเบเบชเบญเบเบเบฒเบเบกเบต tags เปเบเบเปเบฒเบฎเปเบญเบเบเปเบเบถเบ. เบเปเบฒเบเปเปเบกเบตเปเบเบฑเบเบเบตเปเบเปเบญเบเบเบฒเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเบฒเบเบเบงเบเบชเบญเบเบเบฐเบฅเบปเปเบกเปเบซเบฅเบงเปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบซเบฑเบเบเปเปเบเบงเบฒเบกเบเปเบฝเบงเบเบฑเบเปเบฅเบทเปเบญเบเบเบตเปเปเบเบเปเบฒเบฎเปเบญเบเบเปเบเบถเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ.
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'
เปเบเบเบฑเบเบเบธเบเบฑเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบเบถเบเบเปเบญเบเบเบทเบเบซเบกเบฒเบเบเปเบงเบเบซเบเบถเปเบเปเบ tags: type:fix, type:features, type:documentation, type:tests, type:config.

เบเปเบฒโเบญเบฐโเบเบดโเบเบฒเบโเบญเบฑเบโเบเบฐโเปเบโเบกเบฑเบโเบเบญเบโเบเบฒเบโเบฎเปเบญเบโเบเปโเบเบถเบโ
เบเบฑเบเบเบฑเปเบเปเบเปเบเบงเบเปเบฎเบปเบฒเปเบเปเบชเปเบฒเบเบฑเบเบเบฑเบเบซเบปเบงเบเปเปเบเบฑเปเบเบเปเบฒเบงเปเบเบฑเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบตเปเบกเบตเบเบฐเบชเบดเบเบเบดเบเบปเบเบเบฑเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบเบถเบ, เบกเบฑเบเปเบเบฑเบเบเบฒเบเบชเบปเบกเบเบงเบเบเบตเปเบเบฐเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบเบฑเปเบเบเปเบฒเบเบเบทเป, เบกเบฑเบเบงเบฒเบ tags เปเบ PR เปเบเบเบญเบตเบเปเบชเปเปเบเบฅเปเปเบเบเบตเปเบเบทเบเบเปเบฝเบเปเบเบ. เบเบปเบงเบขเปเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบซเบกเบฒเบเปเบเบฑเบ [เบชเปเบฒเบ] เบเบฒเบเบฎเปเบญเบเบเปเบเบถเบเปเบเปเบเบตเปเบเบฐเบเบญเบเบเปเบงเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเปเบเปเบฅเบเบฐเบเปเบฅเบต .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 Actions (เบเปเบฒเบ ssh, เบเปเบฒเบ scp, เปเบฅเบฐเบเบฒเบเบเปเบฒเปเบเป docker-hub), เปเบฅเบฐเบเปเบฒเบเบฐเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบงเบปเปเบฒเปเบเปเบงเปเบฒ, เบชเปเบงเบเบซเบผเบฒเบเบญเบฒเบเบเบฐ, เบเปเบฒเบเบเบฐเบเบญเบเบซเบฒเบงเบดเบเบตเบเบตเปเบเบฐเบญเบฑเบเปเบซเบฅเบ binary เบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เบเปเปเบงเปเบฒเบเบฐเปเบเบฑเบเบเปเปเบเบญเบเบเปเบฒเบเบซเบเบฒเบเบเบฒเบ. เปเบกเปเบ.
เบเปเบญเบเบกเบฑเบเบเบฒเบเปเบฅเบทเบญเบเบเบญเบเบเบฒเบเบฎเบฑเบเบชเบฒเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเบขเบนเปเปเบเบชเบฐเบเบฒเบเบเบตเปเบเบฝเบง, เบเบฑเปเบเบเบฑเปเบเปเบซเปเบเบงเบเปเบฎเบปเบฒเปเบเบดเปเบเบงเบดเบเบตเบเบฒเบเบเปเบฒเปเบเปเบเปเบเบฑเบ GitHub Packages (เบเบตเปเปเบกเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบเบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบซเบฒ binary, npm, jar, docker).
Script เบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบ docker เปเบฅเบฐเปเบเบตเบเปเบเปเบกเบฑเบเบขเบนเปเปเบ GitHub Packages:
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 docker registry เปเบฅเบฐเบเบทเปเบเบญเบเบฎเบนเบเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ. เบกเบตเปเบเบฑเบเบฅเบฑเบเบเบฒเบเบญเบฑเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฑเบเบเปเปเบเบฑเบเปเบเปเบเบปเบเปเบเบทเปเบญ:
- เบเบฒเบเบเปเปเบชเปเบฒเบเปเบเบฑเปเบ: echo โ::set-output name=NAME::VALUEโ เบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบเบฑเปเบเบเปเบฒเบเบญเบเบเบปเบงเปเบเปเบเบเบฑเปเบเบเบญเบเบเบฐเบเบธเบเบฑเบ, เบเบฑเปเบเบเบฑเปเบเบเบถเปเบเบชเบฒเบกเบฒเบเบญเปเบฒเบเปเบเปเปเบเบเบธเบเบเบฑเปเบเบเบญเบเบญเบทเปเบเป.
- เบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบเปเบฒเบเบญเบเบเบปเบงเปเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเปเบเบเบฑเปเบเบเบญเบเบเบตเปเบเปเบฒเบเบกเบฒเบเปเบฒเบเบเบปเบงเบฅเบฐเบเบธเบเบญเบเบเบฑเปเบเบเบญเบเบเบตเป: ${{step.global_env.outputs.DOCKERHUB_IMAGE_NAME }}
- เบเบปเบงเปเบ GITHUB_REPOSITORY เบกเบฒเบเบเบฐเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเบทเปเบเบญเบ repository เปเบฅเบฐเปเบเบปเปเบฒเบเบญเบเบเบญเบเบกเบฑเบ ("เปเบเบปเปเบฒเบเบญเบ / repo-name"). เปเบเบทเปเบญเบเบฑเบเบเบธเบเบขเปเบฒเบเบญเบญเบเบเบฒเบเปเบเบงเบเบตเปเบเบปเบเปเบงเบฑเปเบเบเบทเปเบเบญเบ repository, เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเป syntax bash: ${GITHUB_REPOSITORY#*/}
เบเปเปเปเบเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเปเบฒเบเบฎเบนเบเบเบฒเบ docker:
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 hash เบเบญเบเบเปเบฒเบซเบกเบฑเปเบเบชเบฑเบเบเบฒ - GITHUB_SHA เบเบฑเบเบกเบต nuances เบขเบนเปเบเบตเปเบเบตเป, เบเปเบฒเบเปเบฒเบเบชเปเบฒเบเบเบฑเปเบเบเปเบฒเบงเบเปเปเบเบฝเบเปเบเปเปเบเปเบงเบฅเบฒเบเบตเปเบฅเบงเบกเปเบเบปเปเบฒเบเบฑเบเปเบกเปเบเบปเบ, เปเบเปเบเบฑเบเบญเบตเบเบเบฒเบกเบเบฒเบเบชเปเบฒเบเบเบฒเบเบฎเปเบญเบเบเปเบเบถเบ. เปเบซเบเบเบฒเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ SHA เบญเบฒเบเบเบฐเบเปเปเบเบปเบเบเบฑเบ hash เบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบซเบฑเบเปเบเบเบฐเบซเบงเบฑเบเบชเบฒเบ git, เปเบเบฒเบฐเบงเปเบฒเบเบฒเบเบเบฐเบเปเบฒ / เบเบฒเบเบเบงเบเบชเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเปเบฎเบฑเบเปเบซเป hash เปเบเบฑเบเปเบญเบเบฐเบฅเบฑเบเบเบญเบเบเบปเบเปเบญเบเปเบเบทเปเบญเบซเบผเบตเบเปเบงเบฑเปเบเบเบฒเบ deadlocking เปเบ PR.

เบเปเบฒเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบฎเบฑเบเบงเบฝเบเปเบเปเบเบต, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบตเบเบเบฒเบเบชเปเบงเบเบเบฒเบเบซเบธเปเบกเบซเปเป (https://github.com/antkorwin/github-actions/packages) เปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ, เบเปเบฒเบเบเบฐเปเบซเบฑเบเบฎเบนเบเบเบฒเบ docker เปเบซเบกเป:

เบขเบนเปเบเบตเปเบเบฑเปเบเบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบเบดเปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบญเบเบชเบฐเบเบฑเบเบเบญเบเบฎเบนเบเบเบฒเบ docker เปเบเป.
เบเบฑเบเปเบปเบเบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบกเปเบเปเบเบทเปเบญเบเบณเบเบปเบเบเปเบฒเปเบเบตเบเปเบงเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบซเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฐเบเบฝเบเบเบตเป เปเบฅเบฐเปเบเบตเบเบเปเบฅเบดเบเบฒเบเบเบทเบเปเปเป. เบเปเบญเบเบญเบฒเบเบเบฐเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบตเปเบเปเบฒเบเบฅเบฐเบเบปเบเบญเบตเบเบเบฑเปเบเบซเบเบถเปเบ.
เบเบฒเบเบเบดเบเบเบฒเบก
เบเปเปเบซเปเปเบเบดเปเบเบเบฒเบเปเบฅเบทเบญเบเบเบตเปเบเปเบฒเบเบเบฒเบเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเบเบงเบเบชเบธเบเบฐเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบเปเบเป GitHub Actions. เบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ boot เบเบญเบเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบปเบงเบเบฐเบเบธเปเบ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบฝเบ 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 workflow:
on:
schedule:
- cron: '*/5 * * * *'
เบกเบฑเบเบเปเบฒเบเบเบฒเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเปเบชเบฒเบกเบฒเบเปเบเบทเปเบญเปเบเปเบงเปเบฒเปเบ Github เบเปเบฒเบเบชเบฒเบกเบฒเบเบชเปเบฒเบเปเบซเบเบเบฒเบเบเบตเปเบเปเปเปเบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบ webhooks เบเบฑเบเบซเบกเบปเบ. เบฅเบฒเบเบฅเบฐเบญเบฝเบเบขเบนเปเปเบเปเบญเบเบฐเบชเบฒเบ:
เปเบซเปเบเบงเบเปเบเบดเปเบเบชเบฐเบเบฒเบเบฐเปเบเบตเบเปเบงเบตเบเปเบงเบเบเบปเบเปเบญเบเบเปเบฒเบ 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 เบเปเบฒเบเบชเบฒเบกเบฒเบเบญเปเบฒเบเบเปเบฝเบงเบเบฑเบเบงเบดเบเบตเบเบฒเบเบฎเบฑเบ bot token เปเบฅเบฐ chat id เปเบเปเบญเบเบฐเบชเบฒเบ:

เบขเปเบฒเบฅเบทเบกเบเบฝเบเบเบงเบฒเบกเบฅเบฑเบเปเบ Github: URL เบชเปเบฒเบฅเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบฅเบฐ tokens เบชเปเบฒเบฅเบฑเบ telegram bot.
เบเบดเบเบเบฒเบกเปเบเบเบฑเบ - JIRA เบชเปเบฒเบฅเบฑเบเบเบปเบเบเบตเปเบเบฝเบ
เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเปเบชเบฑเบเบเบฒเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบเบทเบเปเบ JIRA, เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเปเบเปเบเบฑเบเบเบทเบเบกเบฒ. เบซเบผเบฒเบเบฎเปเบญเบเบเบฑเปเบเบเบตเปเบเปเบญเบเปเบเปเบชเบฑเบเปเบเบเปเบซเบฑเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเปเบขเบทเบเบขเบนเปเปเบเปเบงเบฅเบฒเบเบตเปเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบชเปเบฒเบเบเบธเบเบชเบปเบกเบเบฑเบ, เบฅเบงเบกเบชเบฒเบเบฒ, เปเบเปเบฅเบทเบกเบฅเบฒเบเบเบฑเบเบซเบฒเปเบเบปเปเบฒเปเบเปเบ JIRA. เปเบเปเบเบญเบ, เบเปเบฒเบเบฑเบเบซเบกเบปเบเบเบตเปเบเบทเบเปเบฎเบฑเบเบขเบนเปเบเปเบญเบเบเบฝเบง, เบกเบฑเบเบเบฐเบเปเบฒเบเบเบถเปเบ, เปเบเปเบเบงเบฒเบกเบเบดเบเปเบฅเปเบงเบเบงเบเปเบฎเบปเบฒเบเบฝเบเบฅเบฐเบซเบฑเบเปเบ IDE, เบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบชเบฒเบเบฒเปเบเบปเปเบฒเปเบเปเบ bitbucket เบซเบผเบท GitHub, เปเบฅเบฐเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบฅเบฒเบเบงเบฝเบเปเบเบปเปเบฒเปเบเปเบ Jira, เบชเปเบฒเบฅเบฑเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเบตเบเบเปเบญเบเบขเปเบฝเบกเปเบซเบกเป. , เบเบฒเบเบเบฑเปเบเปเบเบปเปเบฒเบชเบนเปเบฅเบฐเบเบปเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบเปเบฅเบฐเบญเบทเปเบเป. เปเบกเบทเปเบญเบเปเบฒเบเบเบทเปเบเปเบฒเปเบเปเบขเปเบฒเบเบชเบปเบกเบเบนเบเบเปเบฝเบงเบเบฑเบเบชเบดเปเบเบเบตเปเบเปเบฒเบเบเปเบญเบเปเบฎเบฑเบเบเปเปเปเบ, เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเบเปเปเบกเบตเบเบธเบเปเบเบเบตเปเบเบฐเปเบเบตเบเบเบฐเบเบฒเบเบญเบตเบเปเบเบทเปเบญเบซเบเบถเปเบ. เบเบฑเปเบเบเบฑเปเบ, เปเบเบเบญเบเปเบเบปเปเบฒเบขเบนเปเบเบตเป standup, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเปเบงเบฅเบฒเบเบฑเบเบเบธเบเบเบฐเบเบฒเบเบงเบฝเบเบเบฒเบ.
GitHub เบเบฑเบเบเบฐเบเปเบงเบเบเบงเบเปเบฎเบปเบฒเปเบเบงเบฝเบเบเบฒเบเบเบปเบเบเบฐเบเบดเบเบตเป; เบชเบดเปเบเบเบตเปเบเปเบฒเบเบเปเบญเบเปเบฎเบฑเบเปเบกเปเบเบเบฐเบเบดเบเบฑเบเบเบฒเบกเบชเบปเบเบเบดเบชเบฑเบเบเบฒเบเบฒเบเบเบฑเปเบเบเบทเปเบชเบฒเบเบฒ:
[ะธะผั ะฟัะพะตะบัะฐ]-[ะฝะพะผะตั ัะฐัะบะฐ]-ะฝะฐะทะฒะฐะฝะธะต
เบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบฅเบฐเบซเบฑเบเปเบเบเบเบฒเบ "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 }}
เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบฎเบฑเบ token เปเบ JIRA, เบงเบดเบเบตเบเบฒเบเปเบฎเบฑเบเบเบตเปเปเบกเปเบเปเบเปเบญเบฐเบเบดเบเบฒเบเบขเบนเปเบเบตเปเบเบตเป:
เบเบงเบเปเบฎเบปเบฒเปเบเบเบเบปเบงเบฅเบฐเบเบธเปเปเบฒเบงเบฝเบเบญเบญเบเบเบฒเบเบเบทเปเบชเบฒเบเบฒ:
- 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. เปเบเบเบเบปเปเบงเปเบ, เบกเบฑเบเบเบฑเบเบซเบกเบปเบเปเบกเปเบเบเบถเปเบเบเบฑเบเบเบดเบเบเบฐเบเบฒเบเบฒเบเปเบฅเบฐเบเบงเบฒเบกเบเบฒเบเบฐเบซเบเบฒเบเบญเบเบเปเบฒเบเบเบตเปเบเบฐเบญเบฑเบเบเบฐเปเบเบกเบฑเบเบเบฐเบเบงเบเบเบฒเบเบเบปเบเบเบฐเบเบด.
เบเบฒเบเบเบปเปเบเบเบปเบ
เบเปเบฒเบเปเบฒเบเปเบเบดเปเบเปเบเบเบงเบฒเบ DEVOPS เบเบฅเบฒเบชเบชเบดเบ, เบเบงเบเปเบฎเบปเบฒเปเบเปเบเบงเบกเปเบญเบปเบฒเบเบธเบเบเบฑเปเบเบเบญเบ, เบเบปเบเปเบงเบฑเปเบเบเบฒเบเบเบตเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบดเบเบงเปเบฒเบเปเบฒเบเปเบฒเบเบเบฐเบเบฒเบเบฒเบก, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบญเบเบซเบฒเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบเบขเปเบฒเบเปเบเบเบฐเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเปเบเบเบเบฑเบเบฅเบฐเบเบปเบเบเปเบงเบเปเบซเบผเบทเบญ, เบเบฑเปเบเบเบฑเปเบเบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบปเบกเบกเบธเบเบงเปเบฒเบเปเปเบเบฑเปเบเบซเบฑเบ. เบญเบญเบเบกเบฒเบขเปเบฒเบเบฅเบฐเบญเบฝเบ เปเบฅเบฐเบชเบฒเบกเบฒเบเบชเบฐเบซเบผเบธเบเปเบเปเปเบเบเบญเบตเบเปเบชเปเบเบฒเบเบเปเบฒเปเบเปเบเบญเบเบกเบฑเบ.

Pros:
- เบเบฐเบซเบผเบฒเบเบเบตเปเบกเบตเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบฝเบกเบเปเบญเบกเบชเปเบฒเบฅเบฑเบเบเบธเบเปเปเบญเบเบฒเบ, เบเบตเปเปเบกเปเบเปเบขเบฑเบเบซเบผเบฒเบ. เปเบเบชเปเบงเบเปเบซเบเปเบเบญเบเบเบงเบเปเบเบปเบฒ, เบเปเบฒเบเบเบฑเบเบชเบฒเบกเบฒเบเปเบเบดเปเบเบฅเบฐเบซเบฑเบเปเบซเบผเปเบเปเบเบทเปเบญเปเบเบปเปเบฒเปเบเบงเบดเบเบตเบเบฒเบเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเปเบเปเบฒเบเบเบทเบเบฑเบเบซเบผเบทเบเบฐเบเบฒเบเบเปเบฒเบฎเปเบญเบเบเปเบเบธเบเบเบฐเบชเบปเบกเบเบฑเบเปเบซเปเบเบฑเบเบเบนเปเบเบฝเบเปเบเบเบเบปเบเปเบเบเปเบญเบเปเบเบฑเบเบกเปเบฝเบ GitHub.
- เบเบฒเบเปเบฅเบทเบญเบเปเบเบฅเบเบเบญเบกเปเบเบปเปเบฒเปเบฒเบเบชเบณเบฅเบฑเบเบเบฒเบเบชเปเบฒเบ: Linux, mac os, windows เปเบเบฑเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบตเปเปเปเบฒเบชเบปเบเปเบเบซเบผเบฒเบ.
- เบเบฒเบเบซเบธเปเบกเบซเปเป Github เปเบเบฑเบเบชเบดเปเบเบเบตเปเบเบต, เบกเบฑเบเบชเบฐเบเบงเบเปเบเบเบฒเบเบฎเบฑเบเบชเบฒเปเบเบเบชเปเบฒเบเบเบทเปเบเบเบฒเบเบเบฑเบเบซเบกเบปเบเบขเบนเปเปเบเบชเบฐเบเบฒเบเบเบตเปเบเบฝเบง, เบเปเบฒเบเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบ surf เบเปเบฒเบเบเปเบญเบเบขเปเบฝเบกเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบขเบนเปเปเบเบฅเบฑเบเบชเบฐเบซเบกเบตเบเบญเบเบซเบเบถเปเบเบซเบผเบทเบชเบญเบเบเบฅเบดเบเบซเบเบนเปเบฅเบฐเบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบขเปเบฒเบเบชเบปเบกเบเบนเบเบเบฑเบ GitHub Actions. เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบฅเบปเบเบเบฐเบเบฝเบ Docker เปเบเบชเบฐเบเบฑเบเบเบฃเบตเบเบฑเบเปเบเบฑเบเบเบฐเปเบซเบเบเบเบตเปเบเบต.
- GitHub เปเบเบทเปเบญเบเบเบงเบฒเบกเบฅเบฑเบเปเบเบเบฑเบเบเบถเบเบเบฒเบเบชเปเบฒเบ, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเบเปเบฒเปเบเปเบกเบฑเบเปเบเบทเปเบญเปเบเบฑเบเบฎเบฑเบเบชเบฒเบฅเบฐเบซเบฑเบเบเปเบฒเบเปเบฅเบฐ tokens เปเบกเปเบเบเปเปเบซเบเปเบฒเบขเปเบฒเบ. เปเบโเบฅเบฐโเบซเบงเปเบฒเบโเบเบฒเบโเบเบปเบโเบฅเบญเบโเบเบฑเบโเบซเบกเบปเบโเบเบญเบโเบเปเบฒโเบเบฐโเปเบเบปเปเบฒ, เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเปเปโเบชเบฒโเบกเบฒเบโเปเบเบดเปเบโเบเบงเบฒเบกโเบฅเบฑเบโเปเบโเบฎเบนเบโเปเบเบโเบเบตเปโเบเปโเบฅเบดโเบชเบธเบโเบเบญเบโเบเบปเบโเปเบ console เปเบเป.
- เบเบฃเบตเบชเปเบฒเบฅเบฑเบเปเบเบเบเบฒเบ Open Source
Cons:
- YML, เบเบต, เบเปเบญเบเบเปเปเบกเบฑเบเบฅเบฒเบง. เปเบกเบทเปเบญเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบฐเปเบชเบเบฑเปเบเบเปเบฒเบง, เบเปเปเบเบงเบฒเบกเบเบตเปเปเบฎเบฑเบเบเบปเปเบงเปเบเบเบตเปเบชเบธเบเบเบตเปเบเปเบญเบเบกเบตเปเบกเปเบ "เปเบเปเปเบเบฎเบนเบเปเบเบ yml", เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบเปเบเบปเปเบฒเบฅเบทเบกเปเบชเปเปเบเบเบขเบนเปเบเปเบญเบเปเบเบเปเบญเบเบซเบเบถเปเบ, เบซเบผเบทเปเบเบปเปเบฒเบเบฝเบเบกเบฑเบเบขเบนเปเปเบเปเบชเบฑเปเบเบเบดเบ. เปเบเบเบเบปเปเบงเปเบ, เบเบฒเบเบเบฑเปเบเบขเบนเปเบเบฒเบเบซเบเปเบฒเบเบญเบเบซเบเปเบฒเบเปเบเบตเปเบกเบต protractor เปเบฅเบฐเปเบกเปเบเบฑเบเบเบฑเบเบเปเปเปเบกเปเบเบเบฐเบชเบปเบเบเบฒเบเบเบตเปเบซเบเปเบฒเบเปเปเบเบเบตเปเบชเบธเบ.
- DEBUG, debugging the flow with commits, run a rebuild, and outputing to the console is not เบชเบฐเบเบงเบเบชเบฐ เปเปเบต เปเบ, เปเบเปเบกเบฑเบเปเบเบฑเบเบเบฐเปเบเบ โเปเบเบปเปเบฒเปเบฎเบฑเบเปเบเบตเบโ เบซเบผเบฒเบเบเบงเปเบฒเบเบตเปเปเบเบปเปเบฒเปเบเบตเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบ IDEA เบเบตเปเบชเบฐเบเบงเบ, เปเบกเบทเปเบญเปเบเบปเปเบฒเบชเบฒเบกเบฒเบเปเบเปเบเบฑเบเบซเบฒเบซเบเบฑเบเปเบเป .
- เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฝเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบญเบเบเปเบฒเบเบเปเบฝเบงเบเบฑเบเบชเบดเปเบเปเบเปเบเปเบเปเบฒเบเปเบฒเบเบซเปเปเบกเบฑเบเบขเบนเปเปเบ Docker, เปเบเปเบงเปเบฒเบเบฝเบเปเบเป javascript เปเบเปเบฎเบฑเบเบเบฒเบเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเบทเปเบเปเบกเบทเบญเบ, เปเบเปเบเบญเบ, เบเบตเปเปเบกเปเบเปเบฅเบทเปเบญเบเบเบญเบเบฅเบปเบเบเบฒเบ, เปเบเปเบเปเบญเบเบเบฐเบกเบฑเบเบชเบดเปเบเบญเบทเปเบเปเบเบ js.
เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเปเปเบเบทเบญเบเบเปเบฒเบเบงเปเบฒ repository เบเบตเปเบกเบตเบชเบฐเบเบดเบเบเบฑเบเบซเบกเบปเบเบขเบนเปเบเบตเปเบเบตเป:
เบญเบฒเบเบดเบเบเปเปเปเบเบเปเบญเบเบเบฐเบชเบฐเปเบเบเบเบฑเบ เปเบเบเบญเบเบเบฐเบเบธเบก Heisenbug 2020 Piter. เบเปเบญเบเบเบฐเบเบญเบเปเบเบปเปเบฒเบเปเปเบเบฝเบเปเบเปเบงเบดเบเบตเบเบฒเบเบซเบผเบตเบเปเบงเบฑเปเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเปเบเปเบงเบฅเบฒเบเบตเปเบเบฒเบเบเบฐเบเบฝเบกเบเปเปเบกเบนเบเบเบฒเบเบเบปเบเบชเบญเบ, เปเบเปเบเบฑเบเปเบเปเบเบเบฑเบเบเบงเบฒเบกเบฅเบฑเบเบเบญเบเบเปเบญเบเปเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบธเบเบเปเปเบกเบนเบเปเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ Java!
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com
