Skip to content

Merge pull request #121 from gormurad/develop #649

Merge pull request #121 from gormurad/develop

Merge pull request #121 from gormurad/develop #649

Workflow file for this run

name: Build and Publish
on:
push:
branches:
- develop
- main
- 2.x
paths-ignore:
- 'helm/**'
- 'docker-compose/**'
- 'structures-js/example/**'
- 'structures-js/load-generator/**'
- 'structures-js/structures-api/**'
- 'structures-js/structures-cli/**'
- 'webdocs/**'
- 'website/**'
jobs:
gradle_build_and_publish:
name: Build and Publish
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 21
gpg-private-key: ${{ secrets.GPG_KEY_NEW }}
gpg-passphrase: ${{ secrets.GPG_KEY_PASS_NEW }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Build with Gradle
id: gradle_build
continue-on-error: true
env:
TESTCONTAINERS_RYUK_DISABLED: true
run: ./gradlew build
- name: Publish to Maven Central with JReleaser
if: ${{ steps.gradle_build.outcome == 'success' }}
run: ./gradlew publish && ./gradlew jreleaserDeploy
env:
JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.MAVEN_TOKEN_USERNAME }}
JRELEASER_MAVENCENTRAL_TOKEN: ${{ secrets.MAVEN_TOKEN_PASSWORD }}
JRELEASER_NEXUS2_USERNAME: ${{ secrets.MAVEN_TOKEN_USERNAME }}
JRELEASER_NEXUS2_TOKEN: ${{ secrets.MAVEN_TOKEN_PASSWORD }}
JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_KEY_NEW }}
JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_KEY_PASS_NEW }}
- name: Publish to Docker Hub
if: ${{ steps.gradle_build.outcome == 'success' }}
run: ./gradlew bootBuildImage --publishImage
env:
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Run E2E Tests
id: run_e2e_tests
continue-on-error: true
run: |
cd structures-js/structures-e2e
gradle pnpmInstall
gradle pnpmTest
- name: Merge Test Results
run: |
mkdir -p allure-results
cp -r */build/allure-results/* allure-results/
cp -r structures-js/*/allure-results/* allure-results/
- name: Get Allure history
uses: actions/checkout@v4
continue-on-error: true
with:
ref: gh-pages
path: gh-pages
- name: Generate Allure report
uses: simple-elf/[email protected]
id: allure-report
with:
allure_results: allure-results
gh_pages: gh-pages
subfolder: allure
allure_report: allure-report
allure_history: allure-history
- name: Deploy report to Github Pages
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: allure-history
publish_branch: gh-pages
keep_files: true
- name: Add status to Commit
uses: guibranco/[email protected]
with:
authToken: ${{ secrets.GITHUB_TOKEN }}
context: 'Test Report'
description: 'Passed'
state: 'success'
sha: ${{ github.sha }}
target_url: https://kinotic-foundation.github.io/structures/allure/${{ github.run_number }}
- name: Check If Failure
if: ${{ steps.gradle_build.outcome == 'failure' || steps.run_e2e_tests.outcome == 'failure' }}
run: |
if [ "${{ steps.gradle_build.outcome }}" == "failure" ]; then
echo "Gradle Build failed."
fi
if [ "${{ steps.run_e2e_tests.outcome }}" == "failure" ]; then
echo "E2E Tests failed."
fi
# Optionally mark the job as failed
exit 1
https://kinotic-foundation.github.io/structures/webdocs/guide/overview.html