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