@@ -2,7 +2,7 @@ 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
1717 inputs :
1818 skip-test :
1919 description : ' Skip test'
20- required : false
21- type : string
22- default : " false"
20+ type : choice
21+ required : true
22+ default : ' false'
23+ options :
24+ - " true"
25+ - " false"
2326
2427jobs :
2528 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 : |
59- echo "kestra.git.pat: ${{ secrets.GH_PERSONAL_TOKEN }}" > src/test/resources/application-test.yml
60- ./gradlew check
61-
62- # Allure check
63- - name : Auth to Google Cloud
64- id : auth
65- if : ${{ always() && env.GOOGLE_SERVICE_ACCOUNT != 0 }}
66- uses : ' google-github-actions/auth@v2'
67- with :
68- credentials_json : ' ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}'
69-
70- - uses : rlespinasse/github-slug-action@v5
71-
72- - name : Publish allure report
73- uses : andrcuns/allure-publish-action@v2.9.0
74- if : ${{ always() && env.GOOGLE_SERVICE_ACCOUNT != 0 && (github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '') }}
75- env :
76- GITHUB_AUTH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
77- JAVA_HOME : /usr/lib/jvm/default-jvm/
78- with :
79- storageType : gcs
80- resultsGlob : build/allure-results
81- bucket : internal-kestra-host
82- baseUrl : " https://internal.dev.kestra.io"
83- prefix : ${{ format('{0}/{1}', github.repository, 'allure/java') }}
84- copyLatest : true
85- ignoreMissingResults : true
86-
87- # Jacoco
88- - name : ' Set up Cloud SDK'
89- if : ${{ env.GOOGLE_SERVICE_ACCOUNT != 0 }}
90- uses : ' google-github-actions/setup-gcloud@v2'
91-
92- - name : ' Copy jacoco files'
93- if : ${{ env.GOOGLE_SERVICE_ACCOUNT != 0 }}
94- run : |
95- gsutil -m rsync -d -r build/reports/jacoco/test/ gs://internal-kestra-host/${{ format('{0}/{1}', github.repository, 'jacoco') }}
96-
97- # Publish
98- - name : Publish package to Sonatype
99- if : github.ref == 'refs/heads/master'
100- env :
101- ORG_GRADLE_PROJECT_sonatypeUsername : ${{ secrets.SONATYPE_USER }}
102- ORG_GRADLE_PROJECT_sonatypePassword : ${{ secrets.SONATYPE_PASSWORD }}
103- SONATYPE_GPG_KEYID : ${{ secrets.SONATYPE_GPG_KEYID }}
104- SONATYPE_GPG_PASSWORD : ${{ secrets.SONATYPE_GPG_PASSWORD }}
105- SONATYPE_GPG_FILE : ${{ secrets.SONATYPE_GPG_FILE }}
106- run : |
107- echo "signing.keyId=${SONATYPE_GPG_KEYID}" > ~/.gradle/gradle.properties
108- echo "signing.password=${SONATYPE_GPG_PASSWORD}" >> ~/.gradle/gradle.properties
109- echo "signing.secretKeyRingFile=${HOME}/.gradle/secring.gpg" >> ~/.gradle/gradle.properties
110- echo ${SONATYPE_GPG_FILE} | base64 -d > ~/.gradle/secring.gpg
111- ./gradlew publishToSonatype
112-
113- # Release
114- - name : Release package to Maven Central
115- if : startsWith(github.ref, 'refs/tags/v')
116- env :
117- ORG_GRADLE_PROJECT_sonatypeUsername : ${{ secrets.SONATYPE_USER }}
118- ORG_GRADLE_PROJECT_sonatypePassword : ${{ secrets.SONATYPE_PASSWORD }}
119- SONATYPE_GPG_KEYID : ${{ secrets.SONATYPE_GPG_KEYID }}
120- SONATYPE_GPG_PASSWORD : ${{ secrets.SONATYPE_GPG_PASSWORD }}
121- SONATYPE_GPG_FILE : ${{ secrets.SONATYPE_GPG_FILE }}
122- run : |
123- echo "signing.keyId=${SONATYPE_GPG_KEYID}" > ~/.gradle/gradle.properties
124- echo "signing.password=${SONATYPE_GPG_PASSWORD}" >> ~/.gradle/gradle.properties
125- echo "signing.secretKeyRingFile=${HOME}/.gradle/secring.gpg" >> ~/.gradle/gradle.properties
126- echo ${SONATYPE_GPG_FILE} | base64 -d > ~/.gradle/secring.gpg
127- ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
128-
129- # GitHub Release
130- - name : Create GitHub release
131- uses : " marvinpinto/action-automatic-releases@latest"
132- if : startsWith(github.ref, 'refs/tags/v')
133- with :
134- repo_token : " ${{ secrets.GITHUB_TOKEN }}"
135- prerelease : false
136- files : |
137- build/libs/*.jar
138-
139- # Slack
140- - name : Slack notification
141- uses : 8398a7/action-slack@v3
142- if : ${{ always() && env.SLACK_WEBHOOK_URL != 0 }}
143- with :
144- status : ${{ job.status }}
145- job_name : Check & Publish
146- fields : repo,message,commit,author,action,eventName,ref,workflow,job,took
147- username : Github Actions
148- icon_emoji : ' :github-actions:'
149- channel : ' C02DQ1A7JLR'
150- env :
151- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
152- SLACK_WEBHOOK_URL : ${{ secrets.SLACK_WEBHOOK_URL }}
153-
154- - name : Notify failed CI
155- id : send-ci-failed
156- if : always() && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') && job.status != 'success'
157- uses : kestra-io/actions/.github/actions/send-ci-failed@main
158- env :
159- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
160- SLACK_WEBHOOK_URL : ${{ secrets.SLACK_WEBHOOK_URL }}
29+ uses : kestra-io/actions/.github/workflows/plugins.yml@main
30+ with :
31+ skip-test : ${{ github.event.inputs.skip-test == 'true' }}
32+ secrets : inherit
0 commit comments