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