Skip to content

Commit a09cc3a

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

File tree

1 file changed

+16
-128
lines changed

1 file changed

+16
-128
lines changed

.github/workflows/main.yml

Lines changed: 16 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -1,148 +1,36 @@
11
name: Main
22

33
on:
4+
schedule:
5+
- cron: '0 4 * * 1,2,3,4,5'
46
push:
57
branches:
68
- master
9+
- main
10+
- releases/*
711
tags:
812
- v*
913

1014
pull_request:
1115
branches:
1216
- master
17+
- main
18+
- releases/*
1319

1420
workflow_dispatch:
1521
inputs:
1622
skip-test:
1723
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"
2130

2231
jobs:
2332
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

Comments
 (0)