Skip to content

Commit aa5d7cb

Browse files
author
Mathieu Gabelle
committed
Revert "chore(cicd): move to reusable workflows on github actions"
This reverts commit ae7f6c1.
1 parent ae7f6c1 commit aa5d7cb

File tree

2 files changed

+171
-42
lines changed

2 files changed

+171
-42
lines changed

.github/setup-unit.sh

Lines changed: 0 additions & 27 deletions
This file was deleted.

.github/workflows/main.yml

Lines changed: 171 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,191 @@ name: Main
22

33
on:
44
schedule:
5-
- cron: '0 4 * * 1,2,3,4,5'
5+
- cron: '0 4 * * 1,3,5'
66
push:
77
branches:
88
- master
9-
- main
10-
- releases/*
119
tags:
1210
- v*
1311

1412
pull_request:
1513
branches:
1614
- master
17-
- main
18-
- releases/*
1915

2016
workflow_dispatch:
2117
inputs:
2218
skip-test:
2319
description: 'Skip test'
24-
type: choice
25-
required: true
26-
default: 'false'
27-
options:
28-
- "true"
29-
- "false"
20+
required: false
21+
type: string
22+
default: "false"
3023

3124
jobs:
3225
check:
33-
uses: kestra-io/actions/.github/workflows/plugins.yml@main
34-
with:
35-
skip-test: ${{ github.event.inputs.skip-test == 'true' }}
36-
secrets: inherit
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+
# Services
56+
- name: Build the docker-compose stack
57+
if: ${{ github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '' }}
58+
run: |
59+
# mkdir certs
60+
# openssl req -new -x509 -days 365 -nodes -out certs/ca.crt -keyout certs/ca.key -subj "/CN=root-ca"
61+
62+
# mkdir certs/server
63+
# openssl genrsa -des3 -out certs/server/server.key -passout pass:p4ssphrase 2048
64+
# openssl rsa -in certs/server/server.key -passin pass:p4ssphrase -out certs/server/server.key
65+
# openssl req -new -nodes -key certs/server/server.key -out certs/server/server.csr -subj "/CN=postgresql"
66+
# openssl x509 -req -in certs/server/server.csr -days 365 -CA certs/ca.crt -CAkey certs/ca.key -CAcreateserial -out certs/server/server.crt
67+
# sudo chmod -R 600 certs/server/
68+
# sudo chown -R 1001 certs/server/
69+
70+
# mkdir certs/client
71+
# openssl genrsa -des3 -out certs/client/client.key -passout pass:p4ssphrase 2048
72+
# openssl rsa -in certs/client/client.key -passin pass:p4ssphrase -out certs/client/client-no-pass.key
73+
# openssl req -new -nodes -key certs/client/client.key -passin pass:p4ssphrase -out certs/client/client.csr -subj "/CN=postgres"
74+
# openssl x509 -req -in certs/client/client.csr -days 365 -CA certs/ca.crt -CAkey certs/ca.key -CAcreateserial -out certs/client/client.crt
75+
76+
# mkdir plugin-debezium-postgres/src/test/resources/ssl/
77+
# cp certs/client/* plugin-debezium-postgres/src/test/resources/ssl/
78+
# cp certs/ca.crt plugin-debezium-postgres/src/test/resources/ssl/
79+
80+
docker compose -f docker-compose-ci.yml up -d mysql
81+
docker compose -f docker-compose-ci.yml up -d
82+
sleep 10
83+
docker compose -f docker-compose-ci.yml exec mysql sh -c "mysql -u root -pmysql_passwd < /tmp/docker/mysql.sql"
84+
docker compose -f docker-compose-ci.yml exec postgres sh -c "export PGPASSWORD=pg_passwd && psql -d postgres -U postgres -f /tmp/docker/postgres.sql > /dev/null"
85+
docker run -v ${PWD}/data:/tmp/docker --network=plugin-debezium_default mcr.microsoft.com/mssql-tools sh -c "/opt/mssql-tools/bin/sqlcmd -S sqlserver -U sa -P Sqls3rv3r_Pa55word! -i /tmp/docker/sqlserver.sql"
86+
87+
# Gradle check
88+
- name: Build with Gradle
89+
if: ${{ github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '' }}
90+
run: ./gradlew check --refresh-dependencies
91+
92+
# Allure check
93+
- name: Auth to Google Cloud
94+
id: auth
95+
if: ${{ always() && env.GOOGLE_SERVICE_ACCOUNT != 0 }}
96+
uses: 'google-github-actions/auth@v2'
97+
with:
98+
credentials_json: '${{ secrets.GOOGLE_SERVICE_ACCOUNT }}'
99+
100+
- uses: rlespinasse/github-slug-action@v5
101+
102+
- name: Publish allure report
103+
uses: andrcuns/allure-publish-action@v2.9.0
104+
if: ${{ always() && env.GOOGLE_SERVICE_ACCOUNT != 0 && (github.event.inputs.skip-test == 'false' || github.event.inputs.skip-test == '') }}
105+
env:
106+
GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
107+
JAVA_HOME: /usr/lib/jvm/default-jvm/
108+
with:
109+
storageType: gcs
110+
resultsGlob: "**/build/allure-results"
111+
bucket: internal-kestra-host
112+
baseUrl: "https://internal.dev.kestra.io"
113+
prefix: ${{ format('{0}/{1}', github.repository, 'allure/java') }}
114+
copyLatest: true
115+
ignoreMissingResults: true
116+
117+
# Jacoco
118+
- name: 'Set up Cloud SDK'
119+
if: ${{ env.GOOGLE_SERVICE_ACCOUNT != 0 }}
120+
uses: 'google-github-actions/setup-gcloud@v2'
121+
122+
- name: 'Copy jacoco files'
123+
if: ${{ env.GOOGLE_SERVICE_ACCOUNT != 0 }}
124+
run: |
125+
mv build/reports/jacoco/testCodeCoverageReport build/reports/jacoco/test/
126+
mv build/reports/jacoco/test/testCodeCoverageReport.xml build/reports/jacoco/test/jacocoTestReport.xml
127+
gsutil -m rsync -d -r build/reports/jacoco/test/ gs://internal-kestra-host/${{ format('{0}/{1}', github.repository, 'jacoco') }}
128+
129+
# Publish
130+
- name: Publish package to Sonatype
131+
if: github.ref == 'refs/heads/master'
132+
env:
133+
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USER }}
134+
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
135+
SONATYPE_GPG_KEYID: ${{ secrets.SONATYPE_GPG_KEYID }}
136+
SONATYPE_GPG_PASSWORD: ${{ secrets.SONATYPE_GPG_PASSWORD }}
137+
SONATYPE_GPG_FILE: ${{ secrets.SONATYPE_GPG_FILE }}
138+
run: |
139+
echo "signing.keyId=${SONATYPE_GPG_KEYID}" > ~/.gradle/gradle.properties
140+
echo "signing.password=${SONATYPE_GPG_PASSWORD}" >> ~/.gradle/gradle.properties
141+
echo "signing.secretKeyRingFile=${HOME}/.gradle/secring.gpg" >> ~/.gradle/gradle.properties
142+
echo ${SONATYPE_GPG_FILE} | base64 -d > ~/.gradle/secring.gpg
143+
./gradlew publishToSonatype
144+
145+
# Release
146+
- name: Release package to Maven Central
147+
if: startsWith(github.ref, 'refs/tags/v')
148+
env:
149+
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USER }}
150+
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
151+
SONATYPE_GPG_KEYID: ${{ secrets.SONATYPE_GPG_KEYID }}
152+
SONATYPE_GPG_PASSWORD: ${{ secrets.SONATYPE_GPG_PASSWORD }}
153+
SONATYPE_GPG_FILE: ${{ secrets.SONATYPE_GPG_FILE }}
154+
run: |
155+
echo "signing.keyId=${SONATYPE_GPG_KEYID}" > ~/.gradle/gradle.properties
156+
echo "signing.password=${SONATYPE_GPG_PASSWORD}" >> ~/.gradle/gradle.properties
157+
echo "signing.secretKeyRingFile=${HOME}/.gradle/secring.gpg" >> ~/.gradle/gradle.properties
158+
echo ${SONATYPE_GPG_FILE} | base64 -d > ~/.gradle/secring.gpg
159+
./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
160+
161+
# GitHub Release
162+
- name: Create GitHub release
163+
uses: "marvinpinto/action-automatic-releases@latest"
164+
if: startsWith(github.ref, 'refs/tags/v')
165+
with:
166+
repo_token: "${{ secrets.GITHUB_TOKEN }}"
167+
prerelease: false
168+
files: |
169+
build/libs/*.jar
170+
171+
# Slack
172+
- name: Slack notification
173+
uses: 8398a7/action-slack@v3
174+
if: ${{ always() && env.SLACK_WEBHOOK_URL != 0 }}
175+
with:
176+
status: ${{ job.status }}
177+
job_name: Check & Publish
178+
fields: repo,message,commit,author,action,eventName,ref,workflow,job,took
179+
username: Github Actions
180+
icon_emoji: ':github-actions:'
181+
channel: 'C02DQ1A7JLR'
182+
env:
183+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
184+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
185+
186+
- name: Notify failed CI
187+
id: send-ci-failed
188+
if: always() && (github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main') && job.status != 'success'
189+
uses: kestra-io/actions/.github/actions/send-ci-failed@main
190+
env:
191+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
192+
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

0 commit comments

Comments
 (0)