Skip to content

Commit f4040b5

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

File tree

1 file changed

+15
-137
lines changed

1 file changed

+15
-137
lines changed

.github/workflows/main.yml

Lines changed: 15 additions & 137 deletions
Original file line numberDiff line numberDiff line change
@@ -2,157 +2,35 @@ 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
9+
- main
10+
- releases/*
911
tags:
1012
- v*
1113

1214
pull_request:
1315
branches:
1416
- master
17+
- main
18+
- releases/*
1519

1620
workflow_dispatch:
1721
inputs:
1822
skip-test:
1923
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"
2330

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

Comments
 (0)