Skip to content

Commit

Permalink
Update build, post_build & release pipelines (#179)
Browse files Browse the repository at this point in the history
* Updated build, post_build & release pipelines

* Rename post_action.yaml to post_build.yaml

* Delete .github/workflows/publish.yaml

---------

Co-authored-by: OmOmofonmwan <[email protected]>
  • Loading branch information
OmOmofonmwan and OmOmofonmwan authored Dec 20, 2024
1 parent 84c6c0a commit fc89bac
Show file tree
Hide file tree
Showing 4 changed files with 119 additions and 78 deletions.
53 changes: 18 additions & 35 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,54 +9,38 @@ on:

env:
BRANCH_NAME: ${{github.ref_name}}
IS_TAG: ${{contains(github.ref_type, 'tag')}}

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/[email protected]

build-job:
name: Build Job
runs-on: ubuntu-24.04
outputs:
RELEASE_UPLOAD_URL: ${{steps.upload_url.outputs.RELEASE_UPLOAD_URL}}
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: ${{ '' }}


- name: Get Release URL (Tag)
id: get_tag_release_url
if: env.IS_TAG == 'true'
uses: octokit/[email protected]
with:
route: GET /repos/${{github.repository}}/releases/tags/${{env.BRANCH_NAME}}
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}


- name: Print & Assign Release Upload Url (Tag)
if: env.IS_TAG == 'true'
id: upload_url
run: |
echo "RELEASE_UPLOAD_URL=${{fromJson(steps.get_tag_release_url.outputs.data).upload_url}}" >> $GITHUB_OUTPUT


generate_build_installers:
name: Generate Release Installers
name: Generate Snapshot Installers
needs: build-job
if: ${{!contains(github.ref_type, 'tag')}}
strategy:
matrix:
os: [macos-13, macos-14, ubuntu-20.04, windows-2022]
Expand All @@ -75,9 +59,8 @@ jobs:
uses: ./.github/installer_composite
with:
branch_name: ${{ env.BRANCH_NAME }}
isTag: ${{env.IS_TAG}}
release_upload_url: ${{ needs.build-job.outputs.RELEASE_UPLOAD_URL || '' }}
isTag: "false"
release_upload_url: ${{ '' }}
github_token: ${{secrets.GITHUB_TOKEN}}
operating_system: ${{matrix.os}}



73 changes: 73 additions & 0 deletions .github/workflows/post_build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Post Build Action Workflow

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'
outputs:
RELEASE_UPLOAD_URL: ${{steps.ikmdev_post_build.outputs.release_upload_url}}
IS_TAG: ${{steps.ikmdev_post_build.outputs.is_tag}}
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/[email protected]
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: ${{ '' }}

generate_release_installers:
name: Generate Release Installers
needs: post-build
if: needs.post-build.outputs.IS_TAG == 'true'
strategy:
matrix:
os: [macos-13, macos-14, ubuntu-20.04, windows-2022]
runs-on: ${{matrix.os}}
steps:
- name: Checkout Code Repository
uses: actions/checkout@v4
with:
ref: ${{github.event.workflow_run.head_branch}}

- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '21'

- name: Composite Action
uses: ./.github/installer_composite
with:
branch_name: ${{github.event.workflow_run.head_branch}}
isTag: "true"
release_upload_url: ${{ needs.post-build.outputs.RELEASE_UPLOAD_URL}}
github_token: ${{secrets.GITHUB_TOKEN}}
operating_system: ${{matrix.os}}

30 changes: 0 additions & 30 deletions .github/workflows/publish.yaml

This file was deleted.

41 changes: 28 additions & 13 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,29 @@
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:
Expand All @@ -19,17 +34,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
id: release_ikmdev_codes
uses: ikmdev/[email protected]
- name: Checkout Repository
uses: actions/checkout@v4
with:
token: ${{secrets.IKMDEVOPS_PAT_TOKEN}}

- name: Shared Release Action
uses: ikmdev/[email protected]
with:
ikmdevops_pat: ${{secrets.IKMDEVOPS_PAT_TOKEN}}
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}}

release_version: ${{ github.event.inputs.release_version }}

0 comments on commit fc89bac

Please sign in to comment.