Migrate CI/CD to GitHub Actions

* Remove JFrog plugin since it is supplied from CI/CD by Gradle init script
* Remove Sonar and Jacoco since we don't manage those service anymore

# Conflicts:
#	.github/release-files-spec.json
#	.github/workflows/central-sync-close.yml
#	.github/workflows/central-sync-create.yml
#	.github/workflows/central-sync-release.yml
#	.github/workflows/ci-snapshot.yml
#	.github/workflows/pr-build-workflow.yml
#	build.gradle
This commit is contained in:
Artem Bilan
2023-12-01 16:40:40 -05:00
parent b4dd400d13
commit 0d85f2a464
11 changed files with 98 additions and 226 deletions

View File

@@ -1,23 +0,0 @@
name: Central Sync Close
on:
workflow_dispatch:
inputs:
stagedRepositoryId:
description: "Staged repository id"
required: true
jobs:
build:
runs-on: ubuntu-latest
steps:
# Request close promotion repo
- uses: jvalkeal/nexus-sync@v0
with:
url: ${{ secrets.OSSRH_URL }}
username: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }}
password: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }}
staging-profile-name: ${{ secrets.OSSRH_STAGING_PROFILE_NAME }}
staging-repo-id: ${{ github.event.inputs.stagedRepositoryId }}
close: true

View File

@@ -1,58 +0,0 @@
name: Central Sync Create
on:
workflow_dispatch:
inputs:
buildName:
description: "Artifactory build name"
required: true
buildNumber:
description: "Artifactory build number"
required: true
jobs:
build:
runs-on: ubuntu-latest
steps:
# to get spec file in .github
- uses: actions/checkout@v2
# Setup jfrog cli
- uses: jfrog/setup-jfrog-cli@v1
with:
version: 1.46.4
env:
JF_ARTIFACTORY_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }}
# Extract build id from input
- name: Extract Build Id
run: |
echo JFROG_CLI_BUILD_NAME="${{ github.event.inputs.buildName }}" >> $GITHUB_ENV
echo JFROG_CLI_BUILD_NUMBER=${{ github.event.inputs.buildNumber }} >> $GITHUB_ENV
# Download released files
- name: Download Release Files
run: |
jfrog rt download \
--spec .github/release-files-spec.json \
--spec-vars "buildname=$JFROG_CLI_BUILD_NAME;buildnumber=$JFROG_CLI_BUILD_NUMBER"
# Create checksums, signatures and create staging repo on central and upload
- uses: jvalkeal/nexus-sync@v0
id: nexus
with:
url: ${{ secrets.OSSRH_URL }}
username: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }}
password: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }}
staging-profile-name: ${{ secrets.OSSRH_STAGING_PROFILE_NAME }}
create: true
upload: true
generate-checksums: true
pgp-sign: true
pgp-sign-passphrase: ${{ secrets.GPG_PASSPHRASE }}
pgp-sign-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
# Print staging repo id
- name: Print Staging Repo Id
run: echo ${{ steps.nexus.outputs.staged-repository-id }}

View File

@@ -1,23 +0,0 @@
name: Central Sync Release
on:
workflow_dispatch:
inputs:
stagedRepositoryId:
description: "Staged repository id"
required: true
jobs:
build:
runs-on: ubuntu-latest
steps:
# Request release promotion repo
- uses: jvalkeal/nexus-sync@v0
with:
url: ${{ secrets.OSSRH_URL }}
username: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }}
password: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }}
staging-profile-name: ${{ secrets.OSSRH_STAGING_PROFILE_NAME }}
staging-repo-id: ${{ github.event.inputs.stagedRepositoryId }}
release: true

17
.github/workflows/ci-snapshot.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: CI SNAPSHOT
on:
workflow_dispatch:
push:
branches:
- main
- 6.1.x
jobs:
build-snapshot:
uses: artembilan/spring-github-workflows/.github/workflows/spring-artifactory-gradle-snapshot.yml@main
secrets:
GRADLE_ENTERPRISE_CACHE_USER: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
JF_ARTIFACTORY_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }}

View File

@@ -1,47 +0,0 @@
name: Pull Request build
on:
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
services:
rabbitmq:
image: rabbitmq:management
ports:
- 5672:5672
- 15672:15672
steps:
- uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 17
- name: Run Gradle
uses: burrunan/gradle-cache-action@v1
env:
SI_FATAL_WHEN_NO_BEANFACTORY: true
NO_REFERENCE_TASK: true
with:
debug: false
concurrent: true
gradle-build-scan-report: false
arguments: checkAsciidocLinks check
- name: Capture Test Results
if: failure()
uses: actions/upload-artifact@v3
with:
name: test-results
path: '*/build/reports/tests/**/*.*'
retention-days: 3

10
.github/workflows/pr-build.yml vendored Normal file
View File

@@ -0,0 +1,10 @@
name: Pull Request Build
on:
pull_request:
branches:
- main
jobs:
build-pull-request:
uses: artembilan/spring-github-workflows/.github/workflows/spring-gradle-pull-request-build.yml@main

26
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: Release
on:
workflow_dispatch:
run-name: Release current version for branch ${{ github.ref_name }}
jobs:
release:
permissions:
actions: write
uses: artembilan/spring-github-workflows/.github/workflows/spring-artifactory-gradle-release.yml@main
secrets:
GH_ACTIONS_REPO_TOKEN: ${{ secrets.GH_ACTIONS_REPO_TOKEN }}
GRADLE_ENTERPRISE_CACHE_USER: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
JF_ARTIFACTORY_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }}
OSSRH_URL: ${{ secrets.OSSRH_URL }}
OSSRH_S01_TOKEN_USERNAME: ${{ secrets.OSSRH_S01_TOKEN_USERNAME }}
OSSRH_S01_TOKEN_PASSWORD: ${{ secrets.OSSRH_S01_TOKEN_PASSWORD }}
OSSRH_STAGING_PROFILE_NAME: ${{ secrets.OSSRH_STAGING_PROFILE_NAME }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
SPRING_RELEASE_SLACK_WEBHOOK_URL: ${{ secrets.SPRING_RELEASE_SLACK_WEBHOOK_URL }}

View File

@@ -0,0 +1,43 @@
name: Verify Staged Artifacts
on:
workflow_dispatch:
inputs:
releaseVersion:
description: 'Release version like 5.0.0-M1, 5.1.0-RC1, 5.2.0 etc.'
required: true
type: string
env:
GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
JF_ENV_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }}
jobs:
verify-staged-with-samples:
runs-on: ubuntu-latest
steps:
- name: Checkout Samples Repo
uses: actions/checkout@v4
with:
repository: spring-projects/spring-integration-samples
show-progress: false
- name: Set up JDK
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 17
cache: 'gradle'
- uses: jfrog/setup-jfrog-cli@v3
- name: Configure JFrog Cli
run: jf gradlec --repo-resolve libs-staging-local
- name: Verify Spring Integration Samples against staged release
run: |
sed -i "1,/springIntegrationVersion.*/s/springIntegrationVersion.*/springIntegrationVersion='${{ inputs.releaseVersion }}'/" build.gradle
jf gradle check