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:
23
.github/workflows/central-sync-close.yml
vendored
23
.github/workflows/central-sync-close.yml
vendored
@@ -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
|
||||
58
.github/workflows/central-sync-create.yml
vendored
58
.github/workflows/central-sync-create.yml
vendored
@@ -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 }}
|
||||
23
.github/workflows/central-sync-release.yml
vendored
23
.github/workflows/central-sync-release.yml
vendored
@@ -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
17
.github/workflows/ci-snapshot.yml
vendored
Normal 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 }}
|
||||
47
.github/workflows/pr-build-workflow.yml
vendored
47
.github/workflows/pr-build-workflow.yml
vendored
@@ -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
10
.github/workflows/pr-build.yml
vendored
Normal 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
26
.github/workflows/release.yml
vendored
Normal 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 }}
|
||||
43
.github/workflows/verify-staged-artifacts.yml
vendored
Normal file
43
.github/workflows/verify-staged-artifacts.yml
vendored
Normal 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
|
||||
Reference in New Issue
Block a user