From d3fd31dba10344be9b7cafe2cccf97afdb42766b Mon Sep 17 00:00:00 2001 From: OmOmofonmwan <145397364+OmOmofonmwan@users.noreply.github.com> Date: Fri, 20 Dec 2024 09:12:26 -0600 Subject: [PATCH] Updated build, post_build & release (#31) Co-authored-by: OmOmofonmwan --- .github/workflows/build.yml | 31 ++++++++++++++----------- .github/workflows/post_build.yml | 40 ++++++++++++++++++++++++++++++++ .github/workflows/publish.yml | 30 ------------------------ .github/workflows/release.yml | 38 +++++++++++++++++++++--------- 4 files changed, 84 insertions(+), 55 deletions(-) create mode 100644 .github/workflows/post_build.yml delete mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e88b93f13..5a44a17b0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,33 +2,36 @@ name: Build Workflow run-name: 'Build Workflow -- ${{ github.head_ref || github.ref_name }}' +# Pipeline/Workflow Triggers on: push: pull_request: workflow_dispatch: -env: - BRANCH_NAME: ${{github.ref_name}} jobs: + pr-verification: + name: Pull Request Validation + runs-on: ubuntu-24.04 + if: github.event_name == 'pull_request' + steps: + - name: Pull Request Version Validation + uses: ikmdev/maven-pull-request-version-validation-action@v1.0.0 + build-job: name: Build Job runs-on: ubuntu-24.04 - if: github.repository_owner == 'ikmdev' - steps: + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: java-version: '21' distribution: 'zulu' + - name: Build IKMDEV Code - uses: ikmdev/maven-clean-install-build-action@v1.1.0 + uses: ikmdev/maven-clean-install-build-action@v2.0.0 with: - branch_name: ${{env.BRANCH_NAME}} - sonarcloud_token: ${{ secrets.SONAR_TOKEN }} - sonarcloud_host_url: ${{ 'https://sonarcloud.io/' }} - sonarcloud_organization: ${{ github.repository_owner }} - sonarcloud_sources: ${{ 'src/main/java' }} - sonarcloud_projectKey: ${{ github.repository_owner }}_${{ github.event.repository.name }} - sonarcloud_coverage_jacoco_xmlReportPaths: ${{ 'target/site/jacoco/jacoco.xml' }} - sonarcloud_java_binaries: ${{ 'target/classes' }} - sonarcloud_tests: ${{ '' }} + branch_name: ${{github.ref_name}} + \ No newline at end of file diff --git a/.github/workflows/post_build.yml b/.github/workflows/post_build.yml new file mode 100644 index 000000000..6de144b44 --- /dev/null +++ b/.github/workflows/post_build.yml @@ -0,0 +1,40 @@ +name: Post Build Action + +run-name: 'Post Build Action -- ${{github.event.workflow_run.head_branch}}' + +on: + workflow_run: + workflows: + - Build Workflow + types: + - completed + +permissions: + contents: write + +jobs: + post-build: + name: Post Build Actions + runs-on: ubuntu-24.04 + if: github.event.workflow_run.conclusion == 'success' && github.repository_owner == 'ikmdev' + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + with: + repository: ${{github.event.workflow_run.head_repository.full_name}} + ref: ${{github.event.workflow_run.head_branch}} + fetch-depth: 0 + + - name: IKMDEV Post Build Action + id: ikmdev_post_build + uses: ikmdev/maven-post-build-action@v1.0.0 + with: + nexus_repo_password: ${{secrets.EC2_NEXUS_PASSWORD}} + branch_name: ${{github.event.workflow_run.head_branch}} + github_token: ${{secrets.GITHUB_TOKEN}} + ossrh_username: ${{secrets.OSSRH_TOKEN_USER}} + ossrh_token: ${{secrets.OSSRH_TOKEN_PASS}} + gpg_key: ${{secrets.GPG_KEY}} + gpg_passphrase: ${{secrets.GPG_PASSPHRASE}} + sonarcloud_token: ${{ secrets.SONAR_TOKEN }} + sonarcloud_tests: ${{ '' }} \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml deleted file mode 100644 index cb631b3fb..000000000 --- a/.github/workflows/publish.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Publish Artifacts Workflow - -run-name: 'Publish Artifacts To Nexus -- ${{github.event.workflow_run.head_branch}}' - -on: - workflow_run: - workflows: - - Build Workflow - types: - - completed - - -jobs: - publish-artifacts: - name: Publish Artifacts - runs-on: ubuntu-24.04 - if: github.event.workflow_run.conclusion == 'success' && github.repository_owner == 'ikmdev' - steps: - - uses: actions/setup-java@v4 - with: - java-version: '21' - distribution: 'zulu' - - - - name: Deploy Artifacts To Nexus - uses: ikmdev/maven-nexus-deploy-action@v1.1.0 - with: - nexus_repo_password: ${{secrets.EC2_NEXUS_PASSWORD}} - repo_name: ${{github.event.workflow_run.head_repository.full_name}} - branch_name: ${{github.event.workflow_run.head_branch}} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3738bfa2a..ac99ab3d1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,14 +1,28 @@ -name: Release Workflow +name: SemVer Release Workflow run-name: "Releasing ${{ github.event.repository.name }} #${{github.run_number}}" # Trigger workflow manually on: workflow_dispatch: + inputs: + release_version: + type: string + description: "(Optional) Custom Release Version" + required: false + version_type: + description: 'Development version type to increment' + required: true + default: 'minor' + type: choice + options: + - major + - minor + - patch env: - BRANCH_NAME: ${{github.ref_name}} - TRUNK_BRANCH_NAME: 'main' + BRANCH_NAME: ${{ github.ref_name }} + TRUNK_BRANCH_NAME: ${{ github.event.repository.default_branch }} jobs: release: @@ -19,15 +33,17 @@ jobs: - name: Verify Branch if: env.BRANCH_NAME != env.TRUNK_BRANCH_NAME run: | - echo "ERROR: Attempting to release from branch ${{env.BRANCH_NAME}}. Release from ${{env.TRUNK_BRANCH_NAME}} branch only" + echo "ERROR: Attempting to release from branch ${{ env.BRANCH_NAME }}. Release from ${{ env.TRUNK_BRANCH_NAME }} branch only." exit 1 - - name: Release IKMDEV Code - uses: ikmdev/maven-release-action@v1.1.0 + - name: Checkout Repository + uses: actions/checkout@v4 with: - ikmdevops_pat: ${{secrets.IKMDEVOPS_PAT_TOKEN}} + token: ${{secrets.IKMDEVOPS_PAT_TOKEN}} + + - name: Shared Release Action + uses: ikmdev/maven-semver-release-action@v1.0.0 + with: + version_type: ${{ github.event.inputs.version_type }} github_token: ${{secrets.GITHUB_TOKEN}} - ossrh_username: ${{secrets.OSSRH_TOKEN_USER}} - ossrh_token: ${{secrets.OSSRH_TOKEN_PASS}} - gpg_key: ${{secrets.GPG_KEY}} - gpg_passphrase: ${{secrets.GPG_PASSPHRASE}} \ No newline at end of file + release_version: ${{ github.event.inputs.release_version }} \ No newline at end of file