Skip to content

Commit dafc9ea

Browse files
committed
chore(cicd): move to reusable workflows on github actions
1 parent d53fcd8 commit dafc9ea

File tree

2 files changed

+12
-139
lines changed

2 files changed

+12
-139
lines changed

.github/setup-unit.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
echo "kestra.git.pat: ${{ secrets.GH_PERSONAL_TOKEN }}" > src/test/resources/application-test.yml

.github/workflows/main.yml

Lines changed: 11 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Main
22

33
on:
44
schedule:
5-
- cron: '0 4 * * 1,3,5'
5+
- cron: '0 4 * * 1,2,3,4,5'
66
push:
77
branches:
88
- master
@@ -17,144 +17,16 @@ on:
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

2427
jobs:
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

Comments
 (0)