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