Skip to content

Commit 77a8967

Browse files
committed
chore(cicd): move to reusable workflows on github actions
1 parent 3a6f01f commit 77a8967

File tree

2 files changed

+12
-141
lines changed

2 files changed

+12
-141
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 $AWS_APPLICATION | base64 -d > src/test/resources/application-test.yml

.github/workflows/main.yml

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