Skip to content

Commit b9a71fe

Browse files
committed
chore(cicd): move to reusable workflows on github actions
1 parent 958dae3 commit b9a71fe

File tree

2 files changed

+20
-148
lines changed

2 files changed

+20
-148
lines changed

.github/setup-unit.sh

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
ssh-keygen -f src/test/resources/ssh/id_rsa -q -N "" -m PEM -P "testPassPhrase"
2+
ssh-keygen -f src/test/resources/ssh/id_ed25519 -q -n "" -P ""
3+
docker compose -f docker-compose-ci.yml up -d
4+
sleep 3
5+
docker exec plugin-fs-sftp-1 chown -R foo /home/foo/upload

.github/workflows/main.yml

+15-148
Original file line numberDiff line numberDiff line change
@@ -2,168 +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-
timeout-minutes: 20
29-
env:
30-
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
31-
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
32-
steps:
33-
- uses: actions/checkout@v4
34-
35-
# Services
36-
- name: Build the docker-compose stack
37-
if: ${{ github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '' }}
38-
run: |
39-
ssh-keygen -f src/test/resources/ssh/id_rsa -q -N "" -m PEM -P "testPassPhrase"
40-
ssh-keygen -f src/test/resources/ssh/id_ed25519 -q -n "" -P ""
41-
docker compose -f docker-compose-ci.yml up -d
42-
sleep 3
43-
docker exec plugin-fs-sftp-1 chown -R foo /home/foo/upload
44-
45-
# Caches
46-
- name: Gradle cache
47-
uses: actions/cache@v4
48-
with:
49-
path: |
50-
~/.gradle/caches
51-
~/.gradle/wrapper
52-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle*.properties') }}
53-
restore-keys: |
54-
${{ runner.os }}-gradle-
55-
56-
# JDK
57-
- name: Set up JDK
58-
uses: actions/setup-java@v4
59-
with:
60-
distribution: 'temurin'
61-
java-version: 21
62-
63-
- name: Validate Gradle wrapper
64-
uses: gradle/actions/wrapper-validation@v4
65-
66-
# Gradle check
67-
- name: Build with Gradle
68-
if: ${{ github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '' }}
69-
run: ./gradlew check --refresh-dependencies
70-
71-
# Allure check
72-
- name: Auth to Google Cloud
73-
id: auth
74-
if: ${{ always() && env.GOOGLE_SERVICE_ACCOUNT != 0 }}
75-
uses: 'google-github-actions/auth@v2'
76-
with:
77-
credentials_json: '${{ secrets.GOOGLE_SERVICE_ACCOUNT }}'
78-
79-
- uses: rlespinasse/github-slug-action@v5
80-
81-
- name: Publish allure report
82-
uses: andrcuns/[email protected]
83-
if: ${{ always() && env.GOOGLE_SERVICE_ACCOUNT != 0 && (github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '') }}
84-
env:
85-
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
86-
JAVA_HOME: /usr/lib/jvm/default-jvm/
87-
with:
88-
storageType: gcs
89-
resultsGlob: build/allure-results
90-
bucket: internal-kestra-host
91-
baseUrl: "https://internal.dev.kestra.io"
92-
prefix: ${{ format('{0}/{1}', github.repository, 'allure/java') }}
93-
copyLatest: true
94-
ignoreMissingResults: true
95-
96-
# Jacoco
97-
- name: 'Set up Cloud SDK'
98-
if: ${{ env.GOOGLE_SERVICE_ACCOUNT != 0 }}
99-
uses: 'google-github-actions/setup-gcloud@v2'
100-
101-
- name: 'Copy jacoco files'
102-
if: ${{ env.GOOGLE_SERVICE_ACCOUNT != 0 }}
103-
run: |
104-
gsutil -m rsync -d -r build/reports/jacoco/test/ gs://internal-kestra-host/${{ format('{0}/{1}', github.repository, 'jacoco') }}
105-
106-
# Publish
107-
- name: Publish package to Sonatype
108-
if: github.ref == 'refs/heads/master'
109-
env:
110-
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USER }}
111-
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
112-
SONATYPE_GPG_KEYID: ${{ secrets.SONATYPE_GPG_KEYID }}
113-
SONATYPE_GPG_PASSWORD: ${{ secrets.SONATYPE_GPG_PASSWORD }}
114-
SONATYPE_GPG_FILE: ${{ secrets.SONATYPE_GPG_FILE }}
115-
run: |
116-
echo "signing.keyId=${SONATYPE_GPG_KEYID}" > ~/.gradle/gradle.properties
117-
echo "signing.password=${SONATYPE_GPG_PASSWORD}" >> ~/.gradle/gradle.properties
118-
echo "signing.secretKeyRingFile=${HOME}/.gradle/secring.gpg" >> ~/.gradle/gradle.properties
119-
echo ${SONATYPE_GPG_FILE} | base64 -d > ~/.gradle/secring.gpg
120-
./gradlew publishToSonatype
121-
122-
# Release
123-
- name: Release package to Maven Central
124-
if: startsWith(github.ref, 'refs/tags/v')
125-
env:
126-
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USER }}
127-
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
128-
SONATYPE_GPG_KEYID: ${{ secrets.SONATYPE_GPG_KEYID }}
129-
SONATYPE_GPG_PASSWORD: ${{ secrets.SONATYPE_GPG_PASSWORD }}
130-
SONATYPE_GPG_FILE: ${{ secrets.SONATYPE_GPG_FILE }}
131-
run: |
132-
echo "signing.keyId=${SONATYPE_GPG_KEYID}" > ~/.gradle/gradle.properties
133-
echo "signing.password=${SONATYPE_GPG_PASSWORD}" >> ~/.gradle/gradle.properties
134-
echo "signing.secretKeyRingFile=${HOME}/.gradle/secring.gpg" >> ~/.gradle/gradle.properties
135-
echo ${SONATYPE_GPG_FILE} | base64 -d > ~/.gradle/secring.gpg
136-
./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
137-
138-
# GitHub Release
139-
- name: Create GitHub release
140-
uses: "marvinpinto/action-automatic-releases@latest"
141-
if: startsWith(github.ref, 'refs/tags/v')
142-
with:
143-
repo_token: "${{ secrets.GITHUB_TOKEN }}"
144-
prerelease: false
145-
files: |
146-
build/libs/*.jar
147-
148-
# Slack
149-
- name: Slack notification
150-
uses: 8398a7/action-slack@v3
151-
if: ${{ always() && env.SLACK_WEBHOOK_URL != 0 }}
152-
with:
153-
status: ${{ job.status }}
154-
job_name: Check & Publish
155-
fields: repo,message,commit,author,action,eventName,ref,workflow,job,took
156-
username: Github Actions
157-
icon_emoji: ':github-actions:'
158-
channel: 'C02DQ1A7JLR'
159-
env:
160-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
161-
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
162-
163-
- name: Notify failed CI
164-
id: send-ci-failed
165-
if: always() && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') && job.status != 'success'
166-
uses: kestra-io/actions/.github/actions/send-ci-failed@main
167-
env:
168-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
169-
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)