Ndinowanzofanira kugadzira pombi yezvirongwa zvekuvaka muJava. Dzimwe nguva inzvimbo yakavhurika, dzimwe nguva haisi. Ini nguva pfupi yadarika ndakafunga kuyedza kufambisa mamwe ezvinyorwa zvangu kubva kuTravis-CI uye TeamCity kuenda kuGitHub Actions, uye izvi ndizvo zvakabuda mazviri.
Chii chatichaita otomatiki?
Chekutanga, isu tinoda purojekiti yatinozoita otomatiki, ngatiite diki application muChitubu boot / Java 11 / Maven. Nezvinangwa zvechinyorwa chino, isu hatisi kuzofarira iyo yekushandisa logic zvachose; zvivakwa zvakatenderedza application zvakakosha kwatiri, saka yakapusa REST API controller ichatikwanira.
Unogona kuona masosi pano:
JIRA nekuronga
Zvakakodzera kuti titaure kuti isu tinowanzo shandisa JIRA sechinhu chinoteedzera tracker, saka ngatigadzire bhodhi rakasiyana repurojekiti iyi uye tiwedzere nyaya dzekutanga ipapo:
Nguva diki gare gare tichadzokera kune izvo zvinonakidza zvinhu JIRA neGitHub zvinogona kupa musanganiswa.
Isu tinogadzirisa kuungana kweprojekiti
Yedu yekuyedza purojekiti inovakwa kuburikidza ne maven, saka kuivaka kuri nyore, chatinoda chete mvn yakachena package.
Kuti tiite izvi tichishandisa Github Zviito, tichada kugadzira faira mune repository inotsanangura mafambiro edu, izvi zvinogona kuitwa neyakajairwa yml faira, handikwanise kutaura kuti ndinoda "yml programming", asi chii chatingaite - tinozviita mu .github/ directory workflow/ file build.yml umo tichatsanangura zviito pakuvaka master bazi:
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 - iyi rondedzero yechiitiko icho script yedu ichavhurwa.
pa: pull_request/push - inoratidza kuti kufambiswa kwebasa uku kunofanirwa kutangwa pese panoitwa kusunda kuna tenzi uye kudhonza zvikumbiro zvinogadzirwa.
Inotevera rondedzero yemabasa (mabasa) uye matanho ekuita (matanho) pabasa rega rega.
kumhanya-mberi - pano isu tinogona kusarudza iyo yakananga OS, zvinoshamisa kuti unogona kusarudza Mac OS, asi pane zvakavanzika repositori izvi zvinodhura (zvichienzaniswa neLinux).
tizvishandise inokutendera kuti ushandisezve zvimwe zviito, semuenzaniso, kushandisa zviito/setup-java chiito isu tinoisa nharaunda yeJava 11.
Nekubatsirwa kwe ne isu tinokwanisa kutsanangura maparamendi atinotangisa nawo chiitiko, chaizvo aya ndiwo nharo dzinozopfuudzwa kuchiito.
Chasara ndechekumhanyisa purojekiti kuvaka muMaven: run: mvn -B clean package
mureza -B inotaura kuti isu tinoda isiri-inopindirana modhi kuitira kuti maven kamwe kamwe haadi kutibvunza chimwe chinhu
Hukuru! Zvino, pese paunozvipira kuna tenzi, kuvaka purojekiti kunotanga.
Automating test inotanga
Gungano rakanaka, asi chaizvoizvo, purojekiti inogona kuunganidzwa zvakachengeteka, asi kwete kushanda. Naizvozvo, nhanho inotevera ndeye automate bvunzo inomhanya. Uye zvakare, zviri nyore kutarisa mhedzisiro yekupasa bvunzo kana iwe uchiita PR ongororo - iwe unonyatsoziva kuti bvunzo dzinopfuura uye hapana akakanganwa kumhanyisa bazi rake asati aita kubatanidza.
Isu tichamhanyisa bvunzo kana tichigadzira chikumbiro chekudhonza uye kubatanidza mune tenzi, uye panguva imwechete isu tichawedzera kusikwa kwechinyorwa chekodhi-kuvhara.
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 }}
Kuvhara bvunzo, ini ndinoshandisa codecov pamwe chete nejacoco plugin. codecov ine chiito chayo, asi inoda chiratidzo chekushanda nechikumbiro chedu chekudhonza:
${{ secrets.CODECOV_TOKEN }}
- tichaona kuvakwa uku kanopfuura kamwe chete, zvakavanzika inzira yekuchengetedza zvakavanzika muGitHub, tinogona kunyora ipapo mapassword / tokens/hosts/urls uye imwe data isingafanirwe kuverengerwa mune repository code base.
Iwe unogona kuwedzera shanduko kune zvakavanzika mune repository marongero paGitHub:
Unogona kuwana chiratidzo pa
Wedzera jacoco plugin kuPOM faira:
<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>
Iye zvino iyo codecov bot ichapinda yega yega yezvikumbiro zvedu zvekudhonza uye kuwedzera yekuvhara shanduko girafu:
Ngatiwedzerei static analyzer
Mune akawanda emapurojekiti angu akavhurika sosi ini ndinoshandisa sonar gore rekuongorora static kodhi, zviri nyore kubatana kune travis-ci. Saka inhanho ine musoro kana uchitamira kuGitHub Zviito kuti uite zvakafanana. Musika wekuita chinhu chinotonhorera, asi panguva ino chakandiregedza zvishoma, nekuti kunze kwetsika ndakawana chiito chandaida uye ndakachiwedzera pakufambiswa kwebasa. Asi zvakazoitika kuti sonar haitsigire kushanda kuburikidza nechiito chekuongorora mapurojekiti pane maven kana gradle. Ehe, izvi zvakanyorwa muzvinyorwa, asi ndiani anoverenga?!
Izvo hazvigoneke kuburikidza nechiito, saka isu tichazviita kuburikidza nemvn plugin:
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 - inogona kuwanikwa pa
Dsonar.projectKey - zita repurojekiti mu sonar, unogona kuiona mumagadzirirwo eprojekiti.
Dsonar.sangano - zita resangano kubva kuGitHub.
Isu tinoita chikumbiro chekudhonza uye takamirira sonarcloud[bot] kuti iuye mune zvakataurwa:
Regedza manejimendi
Iyo kuvaka yakagadziridzwa, bvunzo dzakaitwa, uye isu tinogona kuburitsa. Ngatitarisei kuti GitHub Zviito zvingaite sei kuburitsa manejimendi nyore.
Kubasa, ndine mapurojekiti ane kodhi base iri mubitbucket (zvese zvakaita mune iyo nyaya "Ndinonyorera bitbucket masikati, kuzvipira kuGitHub husiku"). Nehurombo, bitbucket haina yakavakirwa-mukati yekuburitsa manejimendi maturusi. Iri idambudziko, nekuti pakusunungurwa kwega kwega iwe unofanirwa kugadzira peji mukuwirirana uye kukanda zvese zvinosanganisirwa mukuburitswa ikoko, tsvaga kuburikidza nedzimba dzepfungwa dzepfungwa, mabasa mujira, kuzvipira mune repository. Pane mikana mizhinji yekuita chikanganiso, unogona kukanganwa chimwe chinhu kana kuisa chimwe chinhu chakange chatoburitswa kare, dzimwe nguva hazvisi pachena kuti ndezvipi zvekuisa chikumbiro chekudhonza se - ichinhu kana kugadzirisa kwebug, kana kugadzirisa bvunzo, kana chimwe chinhu chekuvaka .
Zviito zveGitHub zvingatibatsira sei? Pane chiitiko chikuru - kuburitsa dhizaini, inokutendera iwe kuseta yekuburitsa manotsi faira template kumisikidza mapoka ezvikumbiro zvekudhonza uye wozvironga otomatiki mune yekuburitsa manotsi faira:
Muenzaniso template yekumisikidza report (.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
Wedzera chinyorwa kuti ugadzire chinyorwa (.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 }}
Zvese zvikumbiro zvekudhonza kubva zvino zvichienda mberi zvichaunganidzwa mune zvinyorwa zvekuburitsa otomatiki - mashiripiti!
Pano mubvunzo ungamuka: ko kana vagadziri vakakanganwa kuisa ma tag muPR? Ipapo hazvina kujeka kuti ndeipi chikamu chekuisa mukati, uye zvakare uchafanirwa kubata nazvo pamaoko, nePR yega yega. Kugadzirisa dambudziko iri, tinogona kushandisa chimwe chiito - label verifier - inotarisa kuvepo kwema tag pachikumbiro chekudhonza. Kana pasina ma tag anodiwa, saka cheki ichatadza uye isu tichaona meseji nezve izvi muchikumbiro chedu chekudhonza.
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'
Iye zvino chero chikumbiro chekudhonza-chinofanirwa kumakwa neimwe yemategi: mhando: gadzirisa, mhando: maficha, mhando: zvinyorwa, mhando: bvunzo, mhando: config.
Auto-annotation yezvikumbiro zvekudhonza
Sezvo takabata nyaya yakadai sebasa rinoshanda nekudhonza zvikumbiro, zvakakodzera kutaura nezvechiito chakadaro sechinyorwa, chinoisa ma tag muPR zvichibva pane mafaira akashandurwa. Semuenzaniso, isu tinogona kumaka se [kuvaka] chero chikumbiro chekudhonza chine shanduko kudhairekitori .github/workflow
.
Kuzvibatanidza zviri nyore:
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 }}
Isu tinodawo faira rinotsanangura kunyorerana pakati pemadhairekitori epurojekiti uye misoro yekukumbira yekudhonza:
theme:build:
- ".github/**"
- "pom.xml"
- ".travis.yml"
- ".gitignore"
- "Dockerfile"
theme:code:
- "src/main/*"
theme:tests:
- "src/test/*"
theme:documentation:
- "docs/**"
theme:TRASH:
- ".idea/**"
- "target/**"
Ini handina kubudirira kubatanidza chiitiko chinoisa otomatiki zvinyorwa mukudhonza zvikumbiro nechiito chinotarisa kuvepo kwemavara anodiwa; match-label haidi kuona mavara akawedzerwa ne bot. Zvinoita sezviri nyore kunyora chako chiito chinosanganisa nhanho mbiri. Asi kunyangwe mune iyi fomu iri nyore kushandisa; iwe unofanirwa kusarudza label kubva pane iyo rondedzero paunenge uchigadzira chikumbiro chekudhonza.
Yasvika nguva yekuisa
Ndakaedza nzira dzinoverengeka dzekuendesa kuburikidza neGitHub Zviito (kuburikidza ne ssh, kuburikidza ne scp, uye kushandisa docker-hub), uye ndinogona kutaura kuti, kazhinji, iwe uchawana nzira yekuisa iyo bhinari kune server, zvisinei kuti yakakombama sei pombi yako. ndizvo.
Ndakafarira sarudzo yekuchengeta zvese zvivakwa munzvimbo imwechete, saka ngatitarisei maitiro ekuendesa kuGitHub Packages (iyi inzvimbo yezvinyorwa zvebhinari, npm, chirongo, docker).
Script yekuvaka docker mufananidzo uye kuishambadza muGitHub 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 }}"
Kutanga, isu tinofanirwa kuvaka iyo JAR faira rekushandisa kwedu, mushure mezvo isu tinoverenga nzira inoenda kuGitHub docker registry uye zita remufananidzo wedu. Pane mashoma mashoma pano atisati tasangana nawo:
- chivakwa chakaita se: echo "::set-output name=NAME::VALUE" inokutendera kuti uise kukosha kwechinhu chiri munhanho yazvino, kuitira kuti chigozoverengwa mune mamwe matanho ese.
- unokwanisa kuwana kukosha kweiyo vhezheni yakaiswa padanho rapfuura kuburikidza nechiratidzo chedanho iri: ${{ steps.global_env.outputs.DOCKERHUB_IMAGE_NAME }}
- Iyo yakajairwa GITHUB_REPOSITORY shanduko inochengetedza zita renzvimbo uye muridzi wayo ("muridzi/repo-zita"). Kuti ticheke zvese kubva pamutsetse uyu kunze kwezita renzvimbo, tichashandisa bash syntax: ${GITHUB_REPOSITORY#*/}
Tevere isu tinoda kuvaka iyo docker mufananidzo:
docker build -t "docker.pkg.github.com/antkorwin/github-actions/github-actions:latest"
Pinda kune registry:
docker login docker.pkg.github.com -u $GITHUB_ACTOR -p ${{secrets.GITHUB_TOKEN}}
Uye shambadza mufananidzo kuGitHub Packages Repository:
docker push "docker.pkg.github.com/antkorwin/github-actions/github-actions"
Kuti tiratidze vhezheni yemufananidzo, isu tinoshandisa manhamba ekutanga kubva kuSHA hash yekuzvipira - GITHUB_SHA kune zvakare nuances pano, kana iwe ukagadzira akadaro anovaka kwete chete kana uchibatanidza kuita tenzi, asiwo zvinoenderana nekudhonza chikumbiro kusikwa. chiitiko, ipapo SHA inogona kusaenderana nehashi yatinoona munhoroondo yegit, nekuti zviito/checkout chiito chinoita hashi yayo yakasarudzika kudzivirira zviito zvinofa muPR.
Kana zvese zvikafamba nemazvo, wobva wavhura chikamu chemapakeji (https://github.com/antkorwin/github-actions/packages) mune repository, uchaona nyowani docker mufananidzo:
Ikoko iwe unogona zvakare kuona rondedzero yeshanduro yemufananidzo we docker.
Chasara ndechekugadzirisa server yedu kuti ishande neiyi registry uye kutangazve sevhisi. Ini ndichataura nezve maitiro ekuita izvi kuburikidza nesystemd imwe nguva.
Kuongorora
Ngatitarisei sarudzo yakapusa pakuita cheki yehutano yekushandisa kwedu uchishandisa GitHub Zviito. Yedu boot application ine actuator, saka hatitomboda kunyora API kuti titarise chimiro chayo; isu takatoita zvese kune simbe. Iwe unongoda kudhonza host: 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"}
Zvose zvatinoda ndezvekunyora basa rekutarisa sevha uchishandisa cron, uye kana kamwe kamwe isingatipinduri, saka tichatumira chiziviso kuburikidza neteregiramu.
Kutanga, ngatione kuti tingaite sei cron workflow:
on:
schedule:
- cron: '*/5 * * * *'
Zviri nyore, ini handitombotendi kuti muGithub unogona kugadzira zviitiko zvisingaenderane newebhooks zvachose. Tsanangudzo dziri mugwaro:
Ngatitarisei mamiriro evhavha nemawoko kuburikidza ne 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"
Kutanga, tinochengetedza mune shanduko iyo sevha yakapindura kuchikumbiro, munhanho inotevera tinoongorora kuti chimiro chiri UP uye, kana zvisiri izvo, tinobuda nekukanganisa. Kana iwe uchida "kuremedza" chiito nemaoko ako, saka kubuda 1 - chombo chakakodzera.
- 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 }}
Isu tinotumira kuteregiramu chete kana chiito chakundikana padanho rapfuura. Kutumira meseji tinoshandisa appleboy/telegraph-action; unogona kuverenga nezve nzira yekuwana bot tokeni uye yekutaura id mune zvinyorwa:
Usakanganwe kunyora mune zvakavanzika paGithub: URL yeseva uye tokeni dzeiyo telegraph bot.
Bonus track - JIRA yeusimbe
Ndakavimbisa kuti taizodzokera kuJIRA, uye tadzoka. Mazana enguva ndakaona mamiriro ekumira-up apo vagadziri vakagadzira chimiro, vakabatanidza bazi, asi vakakanganwa kudhonzera nyaya muJIRA. Ehe, kana zvese izvi zvakaitwa munzvimbo imwechete, zvingava nyore, asi isu tinonyora kodhi muIDE, batanidza matavi mu bitbucket kana GitHub, uye todhonza mabasa muJira, nekuda kweizvi tinoda kuvhura mahwindo matsva. , dzimwe nguva pinda zvakare uye nezvimwe. Kana iwe uchinyatso rangarira zvaunofanira kuita zvinotevera, saka hapana chikonzero chekuvhura bhodhi zvakare. Nekuda kweizvozvo, mangwanani pakusimuka iwe unofanirwa kushandisa nguva uchivandudza bhodhi rebasa.
GitHub ichatibatsirawo mubasa iri renguva dzose; kune kutanga, tinogona kukwevera nyaya otomatiki mukodhi_review column patinoendesa chikumbiro chekudhonza. Zvese zvaunoda kuti uite kutevedzera gungano rekutumidza bazi:
[ΠΈΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°]-[Π½ΠΎΠΌΠ΅Ρ ΡΠ°ΡΠΊΠ°]-Π½Π°Π·Π²Π°Π½ΠΈΠ΅
semuenzaniso, kana kiyi yeprojekiti "GitHub Zviito" iri GA, saka GA-8-jira-bot
inogona kuva bazi rekuita basa reGA-8.
Kubatanidzwa neJIRA kunoshanda kuburikidza nezviito kubva kuAtlassian, ivo havana kukwana, ndinofanira kutaura kuti vamwe vacho havana kundishandira zvachose. Asi isu tichakurukura chete izvo zvinoshanda chaizvo uye zvinoshingaira kushandiswa.
Kutanga iwe unofanirwa kupinda muJIRA uchishandisa chiito: 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 }}
Kuti uite izvi, unofanirwa kuwana chiratidzo muJIRA, maitiro ekuita izvi anotsanangurwa pano:
Isu tinobvisa chiziviso chebasa kubva pazita rebazi:
- 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}}
Kana iwe ukatsvaga mumusika weGitHub, unogona kuwana chiito chebasa iri, asi ini ndaifanira kunyora chinhu chimwe chete ndichishandisa grep ndichishandisa zita rebazi, nekuti ichi chiitiko kubva kuAtlassian chaisada kushanda purojekiti yangu chero nzira. , kuti uone kuti chii chakanga chakaipa ipapo - kureba kupfuura kuita chinhu chimwe chete nemaoko ako.
Chasara kufambisa basa kuenda ku "Code wongororo" column paunenge uchigadzira chikumbiro chekudhonza:
- name: Transition issue
if: ${{ success() }}
uses: atlassian/gajira-transition@master
with:
issue: ${{ steps.find_issue.outputs.ISSUE_ID }}
transition: "Code review"
Pane chiitiko chakakosha cheichi paGitHub, chainoda inyaya ID yakawanikwa munhanho yapfuura uye mvumo muJIRA yatakaita pamusoro.
Nenzira imwecheteyo, iwe unogona kudhonza mabasa kana uchibatanidza mune tenzi, uye zvimwe zviitiko kubva kuGitHub workflow. Muzhinji, zvese zvinoenderana nekufungidzira kwako uye chishuwo chekuita otomatiki maitiro.
zvakawanikwa
Kana iwe ukatarisa iyo yakasarudzika DEVOPS dhizaini, isu takafukidza ese matanho, kunze kwekunge shanda, ndinofunga kana ukaedza, iwe unogona kuwana chimwe chiitiko mumusika chekubatanidzwa nerubatsiro-dhesiki system, saka isu tichafunga kuti pombi yakatendeuka. kuti ive yakakwana uye mhedziso dzinogona kutorwa zvichibva pakushandiswa kwayo.
Pros:
- Musika une zviito zvakagadzirirwa zvezviitiko zvese, izvi zvinotonhorera. Mune mazhinji acho, iwe unogona zvakare kutarisa iyo sosi kodhi kuti unzwisise nzira yekugadzirisa dambudziko rakafanana kana kutumira chikumbiro chechimiro kumunyori zvakananga muGitHub repository.
- Kusarudza nzvimbo yakanangwa yegungano: Linux, mac os, windows chinhu chinonakidza.
- Github Packages chinhu chikuru, zviri nyore kuchengetedza zvese zvivakwa munzvimbo imwechete, haufanirwe kusefa nemahwindo akasiyana, zvese zviri mukati meradius yeimwe kana maviri kudzvanya mbeva uye yakanyatsobatanidzwa neGitHub Zviito. Docker registry rutsigiro mune yemahara vhezheni zvakare yakanaka mukana.
- GitHub inovanza zvakavanzika mumatanda ekuvaka, saka kuishandisa kuchengetedza mapassword uye tokeni hakusi kutyisa. Munguva yese yekuedza kwangu, handina kumbokwanisa kuona chakavanzika muchimiro chayo chakachena mune iyo console.
- Yemahara kune Open Source mapurojekiti
Cons:
- YML, zvakanaka, ini handimude. Paunenge uchishanda nekuyerera kwakadaro, iyo yakajairika meseji yandinayo ndeye "gadzirisa yml fomati", wobva wakanganwa kuisa tab pane imwe nzvimbo, kana iwe unoinyora pamutsara usiriwo. Kazhinji, kugara pamberi pechidzitiro chine protractor uye mutongi haisi iyo inonyanya kunakidza chiitiko.
- DEBUG, kugadzirisa kuyerera nekuita, kumhanyisa kuvakazve, uye kuburitsa kune koni hakusi nyore nguva dzose, asi yakawanda yechikamu che "wakanyanya"; iwe wakajaira kushanda neIDEA iri nyore, kana iwe uchigona kugadzirisa chero chinhu. .
- Iwe unogona kunyora chiito chako pane chero chinhu kana ukaiputira muDocker, asi javascript chete inotsigirwa, hongu iyi inyaya yekuravira, asi ini ndingada chimwe chinhu pane js.
Rega ndikuyeuchidze kuti repository ine zvese zvinyorwa zviri pano:
Svondo rinouya ndichange ndichitamba naro
report pamusangano weHeisenbug 2020 Piter. Ini ndichakuudza kwete chete nzira yekudzivirira kukanganisa paunenge uchigadzirira bvunzo data, asi zvakare kugovera zvakavanzika zvangu zvekushanda nemaseti e data muJava application!
Source: www.habr.com