@@ -2,157 +2,35 @@ name: Main
22
33on :
44 schedule :
5- - cron : ' 0 4 * * 1,3 ,5'
5+ - cron : ' 0 4 * * 1,2,3,4 ,5'
66 push :
77 branches :
88 - master
9+ - main
10+ - releases/*
911 tags :
1012 - v*
1113
1214 pull_request :
1315 branches :
1416 - master
17+ - main
18+ - releases/*
1519
1620 workflow_dispatch :
1721 inputs :
1822 skip-test :
1923 description : ' Skip test'
20- required : false
21- type : string
22- default : " false"
24+ type : choice
25+ required : true
26+ default : ' false'
27+ options :
28+ - " true"
29+ - " false"
2330
2431jobs :
2532 check :
26- name : Check & Publish
27- runs-on : ubuntu-latest
28- env :
29- SLACK_WEBHOOK_URL : ${{ secrets.SLACK_WEBHOOK_URL }}
30- GOOGLE_SERVICE_ACCOUNT : ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
31- steps :
32- - uses : actions/checkout@v4
33-
34- # Caches
35- - name : Gradle cache
36- uses : actions/cache@v4
37- with :
38- path : |
39- ~/.gradle/caches
40- ~/.gradle/wrapper
41- key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle*.properties') }}
42- restore-keys : |
43- ${{ runner.os }}-gradle-
44-
45- # JDK
46- - name : Set up JDK
47- uses : actions/setup-java@v4
48- with :
49- distribution : ' temurin'
50- java-version : 21
51-
52- - name : Validate Gradle wrapper
53- uses : gradle/actions/wrapper-validation@v4
54-
55- # Gradle check
56- - name : Build with Gradle
57- if : ${{ github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '' }}
58- run : ./gradlew check --refresh-dependencies
59-
60- # Allure check
61- - name : Auth to Google Cloud
62- id : auth
63- if : ${{ always() && env.GOOGLE_SERVICE_ACCOUNT != 0 }}
64- uses : ' google-github-actions/auth@v2'
65- with :
66- credentials_json : ' ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}'
67-
68- - uses : rlespinasse/github-slug-action@v5
69-
70- - name : Publish allure report
71- 72- if : ${{ always() && env.GOOGLE_SERVICE_ACCOUNT != 0 && (github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '') }}
73- env :
74- GITHUB_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
75- JAVA_HOME : /usr/lib/jvm/default-jvm/
76- with :
77- storageType : gcs
78- resultsGlob : build/allure-results
79- bucket : internal-kestra-host
80- baseUrl : " https://internal.dev.kestra.io"
81- prefix : ${{ format('{0}/{1}', github.repository, 'allure/java') }}
82- copyLatest : true
83- ignoreMissingResults : true
84-
85- # Jacoco
86- - name : ' Set up Cloud SDK'
87- if : ${{ env.GOOGLE_SERVICE_ACCOUNT != 0 }}
88- uses : ' google-github-actions/setup-gcloud@v2'
89-
90- - name : ' Copy jacoco files'
91- if : ${{ env.GOOGLE_SERVICE_ACCOUNT != 0 }}
92- run : |
93- gsutil -m rsync -d -r build/reports/jacoco/test/ gs://internal-kestra-host/${{ format('{0}/{1}', github.repository, 'jacoco') }}
94-
95- # Publish
96- - name : Publish package to Sonatype
97- if : github.ref == 'refs/heads/master'
98- env :
99- ORG_GRADLE_PROJECT_sonatypeUsername : ${{ secrets.SONATYPE_USER }}
100- ORG_GRADLE_PROJECT_sonatypePassword : ${{ secrets.SONATYPE_PASSWORD }}
101- SONATYPE_GPG_KEYID : ${{ secrets.SONATYPE_GPG_KEYID }}
102- SONATYPE_GPG_PASSWORD : ${{ secrets.SONATYPE_GPG_PASSWORD }}
103- SONATYPE_GPG_FILE : ${{ secrets.SONATYPE_GPG_FILE }}
104- run : |
105- echo "signing.keyId=${SONATYPE_GPG_KEYID}" > ~/.gradle/gradle.properties
106- echo "signing.password=${SONATYPE_GPG_PASSWORD}" >> ~/.gradle/gradle.properties
107- echo "signing.secretKeyRingFile=${HOME}/.gradle/secring.gpg" >> ~/.gradle/gradle.properties
108- echo ${SONATYPE_GPG_FILE} | base64 -d > ~/.gradle/secring.gpg
109- ./gradlew publishToSonatype
110-
111- # Release
112- - name : Release package to Maven Central
113- if : startsWith(github.ref, 'refs/tags/v')
114- env :
115- ORG_GRADLE_PROJECT_sonatypeUsername : ${{ secrets.SONATYPE_USER }}
116- ORG_GRADLE_PROJECT_sonatypePassword : ${{ secrets.SONATYPE_PASSWORD }}
117- SONATYPE_GPG_KEYID : ${{ secrets.SONATYPE_GPG_KEYID }}
118- SONATYPE_GPG_PASSWORD : ${{ secrets.SONATYPE_GPG_PASSWORD }}
119- SONATYPE_GPG_FILE : ${{ secrets.SONATYPE_GPG_FILE }}
120- run : |
121- echo "signing.keyId=${SONATYPE_GPG_KEYID}" > ~/.gradle/gradle.properties
122- echo "signing.password=${SONATYPE_GPG_PASSWORD}" >> ~/.gradle/gradle.properties
123- echo "signing.secretKeyRingFile=${HOME}/.gradle/secring.gpg" >> ~/.gradle/gradle.properties
124- echo ${SONATYPE_GPG_FILE} | base64 -d > ~/.gradle/secring.gpg
125- ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
126-
127- # GitHub Release
128- - name : Create GitHub release
129- uses : " marvinpinto/action-automatic-releases@latest"
130- if : startsWith(github.ref, 'refs/tags/v')
131- with :
132- repo_token : " ${{ secrets.GITHUB_TOKEN }}"
133- prerelease : false
134- files : |
135- build/libs/*.jar
136-
137- # Slack
138- - name : Slack notification
139- uses : 8398a7/action-slack@v3
140- if : ${{ always() && env.SLACK_WEBHOOK_URL != 0 }}
141- with :
142- status : ${{ job.status }}
143- job_name : Check & Publish
144- fields : repo,message,commit,author,action,eventName,ref,workflow,job,took
145- username : Github Actions
146- icon_emoji : ' :github-actions:'
147- channel : ' C02DQ1A7JLR'
148- env :
149- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
150- SLACK_WEBHOOK_URL : ${{ secrets.SLACK_WEBHOOK_URL }}
151-
152- - name : Notify failed CI
153- id : send-ci-failed
154- if : always() && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') && job.status != 'success'
155- uses : kestra-io/actions/.github/actions/send-ci-failed@main
156- env :
157- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
158- SLACK_WEBHOOK_URL : ${{ secrets.SLACK_WEBHOOK_URL }}
33+ uses : kestra-io/actions/.github/workflows/plugins.yml@main
34+ with :
35+ skip-test : ${{ github.event.inputs.skip-test == 'true' }}
36+ secrets : inherit
0 commit comments