Skip to content

Update org.bouncycastle:bcutil-jdk18on to v1.84 (master) (#10733) #3694

Update org.bouncycastle:bcutil-jdk18on to v1.84 (master) (#10733)

Update org.bouncycastle:bcutil-jdk18on to v1.84 (master) (#10733) #3694

# This workflow will build a Java project with Maven
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven
name: Java CI with Maven
env:
JDK_VERSION: 25
PROFILES: frankframework,codecoverage,ci
IS_DEPENDENCY_BOT: ${{ github.actor == 'dependabot[bot]' || github.actor == 'renovate[bot]' }}
# Don't allow credentials on forks, secrets are not available when using forks or dependency bots
USE_PROPRIETARY: ${{ (github.event_name != 'pull_request' || github.event.pull_request.head.repo.owner.login == 'frankframework') && github.actor != 'dependabot[bot]' && github.actor != 'renovate[bot]' }}
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
PR_NUMBER: ${{ github.event.number || '' }}
MAVEN_GOALS: verify
on:
push:
branches:
- master
- '[0-9]+.[0-9]+-release'
- 'release/[0-9]+.[0-9]+'
paths-ignore:
- "**.md"
- "**.yml"
- "**.txt"
- "**.png"
- "**.toml"
- ".github/**"
- "!.github/workflows/*.yml"
- "docker/**"
pull_request:
branches:
- master
- '[0-9]+.[0-9]+-release'
- 'release/[0-9]+.[0-9]+'
paths-ignore:
- "**.md"
- "**.yml"
- "**.txt"
- "**.png"
- "**.toml"
- ".github/**"
- "!.github/workflows/*.yml"
- "docker/**"
jobs:
build-maven-artifacts:
name: Build and Test Maven Artifacts on JDK
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
# Number of commits to fetch. 0 indicates all history for all branches and tags.
# Required for SonarCloud
fetch-depth: 0
- name: Set up Maven Dependency Cache
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5
with:
path: |
~/.m2/repository
key: maven-dependency-cache-${{ hashFiles('**/pom.xml') }}
restore-keys: |
maven-dependency-cache-
- name: Restore Sonar Cache
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5
with:
path: |
~/.sonar/cache
key: sonar-cache-${{ github.base_ref }}
restore-keys: |
sonar-cache-refs/heads/master
sonar-cache-
- name: Set up JDK ${{ env.JDK_VERSION }}
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with:
distribution: 'temurin'
java-version: ${{ env.JDK_VERSION }}
- name: Install pnpm
uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5
with:
version: 10.28.2
- name: Set up Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: 24.14.1
cache: pnpm
cache-dependency-path: '**/pnpm-lock.yaml'
- name: Create Maven settings.xml file
if: ${{ env.USE_PROPRIETARY == 'true' }}
uses: s4u/maven-settings-action@894661b3ddae382f1ae8edbeab60987e08cf0788 # v4.0.0
with:
servers: '[{"id": "proprietary", "username": "${{ secrets.CI_USER }}", "password": "${{ secrets.CI_PASS }}"}]'
- name: Update Maven profiles
if: ${{ env.USE_PROPRIETARY == 'true' }}
run: |
echo "PROFILES=${{ env.PROFILES }},proprietary" >> $GITHUB_ENV
- name: FrankDoc only on Java ${{ env.JDK_VERSION }} Build
run: |
echo "PROFILES=${{ env.PROFILES }},attachFrankDoc" >> $GITHUB_ENV
# Secrets are not available when commits are made by dependency bots or from GH forks
- name: Update environment to run on SonarSource
if: ${{ env.USE_PROPRIETARY == 'true' && env.IS_DEPENDENCY_BOT == 'false' }}
run: |
echo "MAVEN_GOALS=${{ env.MAVEN_GOALS }} org.sonarsource.scanner.maven:sonar-maven-plugin:sonar" >> $GITHUB_ENV
# Use Maven Wrapper, so we can build with an older version of Maven, see PR #4579.
- name: Build with Maven
env:
mailAddress: ${{ secrets.EXCHANGE_MAIL_ADDRESS }}
clientId: ${{ secrets.EXCHANGE_MAIL_CLIENTID }}
clientSecret: ${{ secrets.EXCHANGE_MAIL_CLIENTSECRET }}
tenantId: ${{ secrets.EXCHANGE_MAIL_TENANTID }}
baseFolder: "Inbox/${{env.PR_NUMBER}}-${{ env.JDK_VERSION }}"
CI_SERVICE: GITHUB
TZ: Europe/Amsterdam
JAVA_OPTS: "-Xms1G -XX:+UseParallelGC"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} # SonarCloud
run: ./mvnw -B -V -T1 ${{env.MAVEN_GOALS}} -P${{env.PROFILES}} -Dsonar.projectKey=frankframework -Dsonar.organization=frank-framework
- name: Upload coverage to Codecov
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6
continue-on-error: true #ignore failure when unable to upload the artifacts
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload coverage to Codacy
if: ${{ env.USE_PROPRIETARY == 'true' || env.IS_DEPENDENCY_BOT == 'true' }}
uses: codacy/codacy-coverage-reporter-action@89d6c85cfafaec52c72b6c5e8b2878d33104c699 # v1
continue-on-error: true #ignore failure when unable to upload the artifacts
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
- name: Store Test Results
if: ${{ failure() || cancelled() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: java${{ env.JDK_VERSION }}_Surefire
path: ${{ github.workspace }}/*/target/surefire-reports/*
- name: Store Test Logs
if: ${{ failure() || cancelled() }}
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: java${{ env.JDK_VERSION }}_Logs
path: ${{ github.workspace }}/*/target/test-logs/*
- name: Store Cypress Results
if: failure()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: java${{ env.JDK_VERSION }}_Cypress
path: ${{ github.workspace }}/*/target/test-classes/e2e/cypress/**
- name: Store FrankDoc XSD
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: java${{ env.JDK_VERSION }}_FrankDoc
path: ${{ github.workspace }}/target/frankdoc/xml/xsd/*.xsd
- name: Save Sonar Cache
uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5
if: |
always() &&
(github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/release') || startsWith(github.ref, 'refs/heads/[0-9]+.[0-9]+-release'))
with:
path: |
~/.sonar/cache
key: sonar-cache-${{ github.base_ref }}
# Check the Quality Gate status.
- name: SonarQube Quality Gate check
if: ${{ env.USE_PROPRIETARY == 'true' && env.IS_DEPENDENCY_BOT == 'false' }}
uses: sonarsource/sonarqube-quality-gate-action@cb3ed20f9fec62b4c3b8ad9e77656c6adaade913
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
sonar.projectKey: frankframework
sonar.organization: frank-framework
with:
scanMetadataReportFile: target/sonar/report-task.txt