Skip to content

Build Workflow -- main #95

Build Workflow -- main

Build Workflow -- main #95

Workflow file for this run

name: Build Workflow
run-name: 'Build Workflow -- ${{ github.head_ref || github.ref_name }}'
on:
push:
pull_request:
workflow_dispatch:
env:
BRANCH_NAME: ${{github.ref_name}}
jobs:
build-job:
name: Build Job
runs-on: ubuntu-24.04
steps:
- uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'zulu'
- name: Checkout Code
uses: actions/checkout@v4
- name: Build Protoc Docker container
uses: docker/build-push-action@v6
with:
push: false
context: .
file: protoc.dockerfile
tags: tinkar-schema-protoc:latest
#outputs: type=docker,dest=/tmp/protocimage.tar
# - name: Build C sharp Docker container
# uses: docker/build-push-action@v6
# with:
# push: false
# context: .
# file: csharp.dockerfile
# tags: tinkar-schema-csharp:latest
# #outputs: type=docker,dest=/tmp/csharpimage.tar
- name: Generate Java Code
run: |
docker run -v ./src/main/java-generated:/home/proto-builder/src/main/java-generated --rm tinkar-schema-protoc:latest
- name: list java code
run: |
ls src/main/java-generated
- name: build java code
run: |
./mvnw clean install \
--batch-mode \
-e \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
-Dmaven.build.cache.enabled=false \
-PcodeQuality
- name: SonarCloud Build and analyze
if: github.repository_owner == 'ikmdev' && github.event_name != 'pull_request'
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_HOST_URL: ${{ 'https://sonarcloud.io/' }}
SONAR_ORGANIZATION: ${{ github.repository_owner }}
run: mvn verify sonar:sonar
-Dsonar.organization=${{ github.repository_owner }}
-Dsonar.sources=src/main/java-generated
-Dsonar.projectKey=${{ github.repository_owner }}_${{ github.event.repository.name }}
-Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml
-Dsonar.java.binaries=target/classes
-Dsonar.tests=${{ '' }}
publish_to_ossrh:
name: Publish To Maven Central (OSSRH)
runs-on: ubuntu-24.04
if: github.repository_owner == 'ikmdev' && github.ref_type == 'tag'
needs: build-job
steps:
- name: Checkout Code Repository
uses: actions/checkout@v4
with:
ref: ${{env.BRANCH_NAME}}
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '21'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
gpg-private-key: ${{secrets.GPG_KEY}}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: Build Protoc Docker container
uses: docker/build-push-action@v6
with:
push: false
context: .
file: protoc.dockerfile
tags: tinkar-schema-protoc:latest
- name: Generate Java Code
shell: bash
run: |
sudo docker run -v ./src/main/java-generated:/home/proto-builder/src/main/java-generated --rm tinkar-schema-protoc:latest
- name: list java code
shell: bash
run: |
ls src/main/java-generated
- name: Maven Build
shell: bash
run: |
./mvnw clean install -U \
--batch-mode \
-e \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
-Dmaven.build.cache.enabled=false \
-PcodeQuality
- name: Publish To OSSRH (Maven Central Staging)
shell: bash
run: |
./mvnw deploy -U\
--batch-mode \
-e \
-U \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
-DskipTests \
-DskipITs \
-Dmaven.main.skip \
-Dmaven.test.skip \
-DrepositoryId=ossrh \
-DrepositoryIdOSSRH='true' \
-PstageOSSRH \
-Dmaven.build.cache.enabled=false
env:
MAVEN_USERNAME: ${{secrets.OSSRH_TOKEN_USER}}
MAVEN_CENTRAL_TOKEN: ${{secrets.OSSRH_TOKEN_PASS}}
MAVEN_GPG_PASSPHRASE: ${{secrets.GPG_PASSPHRASE}}