Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 19 additions & 75 deletions .github/workflows/java-code-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
branches:
- main
# Ignore changes in documentation, general configuration and analysis-results for push events
paths-ignore:
paths-ignore: &ignore_paths
- 'analysis-results/**'
- 'documentation/**'
- '**/*.md'
Expand All @@ -22,21 +22,7 @@ on:
pull_request:
branches:
- main
# Ignore changes in documentation, general configuration and analysis-results for pull request events
paths-ignore:
- 'analysis-results/**'
- 'documentation/**'
- '**/*.md'
- '**/*.txt'
- '**/*.css'
- '**/*.html'
- '**/*.js'
- '.gitignore'
- '.gitattributes'
- 'renovate.json'
- '**.code-workspace'
- '.github/workflows/typescript-code-analysis.yml'
- '.github/workflows/*documentation.yml'
paths-ignore: *ignore_paths

jobs:
prepare-code-to-analyze:
Expand All @@ -45,81 +31,39 @@ jobs:
env:
PROJECT_NAME: AxonFramework
# Version variable names matches renovate.json configuration entry
AXON_FRAMEWORK_VERSION: 4.12.2
# Java is in this example only used to download JARs for analysis using Maven
JAVA_VERSION: 25
AXON_FRAMEWORK_VERSION: 5.0.0
outputs:
project-name: ${{ env.PROJECT_NAME }}
project-version: ${{ env.AXON_FRAMEWORK_VERSION }}
analysis-name: ${{ steps.set-analysis-name.outputs.analysis-name }}
sources-upload-name: ${{ steps.set-sources-upload-name.outputs.sources-upload-name }}
artifacts-upload-name: ${{ steps.set-artifacts-upload-name.outputs.artifacts-upload-name }}

steps:
- name: (Prepare Code to Analyze) Checkout AxonFramework repository
run: |
git clone --bare https://github.com/AxonFramework/AxonFramework.git --branch "axon-${{ env.AXON_FRAMEWORK_VERSION }}" --single-branch "./source/AxonFramework-${{ env.AXON_FRAMEWORK_VERSION }}/.git"

- name: (Prepare Code to Analyze) Setup Java Development Kit for Maven JARs downloading (JDK) ${{ env.JAVA_VERSION}}
uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5
with:
distribution: "temurin"
java-version: ${{ env.JAVA_VERSION}}

- name: (Prepare Code to Analyze) Download AxonFramework JARs for analysis
run: |
mvn dependency:copy -Dartifact=org.axonframework:axon-configuration:${{ env.AXON_FRAMEWORK_VERSION }} -DoutputDirectory=./artifacts
mvn dependency:copy -Dartifact=org.axonframework:axon-disruptor:${{ env.AXON_FRAMEWORK_VERSION }} -DoutputDirectory=./artifacts
mvn dependency:copy -Dartifact=org.axonframework:axon-eventsourcing:${{ env.AXON_FRAMEWORK_VERSION }} -DoutputDirectory=./artifacts
mvn dependency:copy -Dartifact=org.axonframework:axon-messaging:${{ env.AXON_FRAMEWORK_VERSION }} -DoutputDirectory=./artifacts
mvn dependency:copy -Dartifact=org.axonframework:axon-modelling:${{ env.AXON_FRAMEWORK_VERSION }} -DoutputDirectory=./artifacts
mvn dependency:copy -Dartifact=org.axonframework:axon-test:${{ env.AXON_FRAMEWORK_VERSION }} -DoutputDirectory=./artifacts
mvn dependency:copy -Dartifact=org.axonframework:axon-server-connector:${{ env.AXON_FRAMEWORK_VERSION }} -DoutputDirectory=./artifacts
mvn dependency:copy -Dartifact=org.axonframework:axon-spring-boot-autoconfigure:${{ env.AXON_FRAMEWORK_VERSION }} -DoutputDirectory=./artifacts
mvn dependency:copy -Dartifact=org.axonframework:axon-tracing-opentelemetry:${{ env.AXON_FRAMEWORK_VERSION }} -DoutputDirectory=./artifacts

- name: (Prepare Code to Analyze) Set analysis-name
id: set-analysis-name
run: echo "analysis-name=${{ env.PROJECT_NAME }}-${{ env.AXON_FRAMEWORK_VERSION }}" >> "$GITHUB_OUTPUT"

- name: (Prepare Code to Analyze) Generate ARTIFACT_UPLOAD_ID
run: echo "ARTIFACT_UPLOAD_ID=$(LC_ALL=C tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 10)" >> $GITHUB_ENV

- name: (Prepare Code to Analyze) Set sources-upload-name
id: set-sources-upload-name
run: echo "sources-upload-name=${{ steps.set-analysis-name.outputs.analysis-name }}-analysis-sources_input-${{ env.ARTIFACT_UPLOAD_ID }}" >> "$GITHUB_OUTPUT"

- name: (Prepare Code to Analyze) Assemble ARTIFACTS_UPLOAD_NAME
id: set-artifacts-upload-name
run: echo "artifacts-upload-name=${{ steps.set-analysis-name.outputs.analysis-name }}-analysis-artifacts-input-${{ env.ARTIFACT_UPLOAD_ID }}" >> "$GITHUB_OUTPUT"

- name: (Prepare Code to Analyze) Upload sources to analyze
if: success()
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with:
name: ${{ steps.set-sources-upload-name.outputs.sources-upload-name }}
path: ./source
include-hidden-files: true
if-no-files-found: error
retention-days: 1

- name: (Prepare Code to Analyze) Upload artifacts to analyze
if: success()
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with:
name: ${{ steps.set-artifacts-upload-name.outputs.artifacts-upload-name }}
path: ./artifacts
if-no-files-found: error
retention-days: 1


analyze-code-graph:
name: Analyze Code Graph
needs: [prepare-code-to-analyze]
uses: JohT/code-graph-analysis-pipeline/.github/workflows/public-analyze-code-graph.yml@v3.1.1
with:
analysis-name: ${{ needs.prepare-code-to-analyze.outputs.analysis-name }}
artifacts-upload-name: ${{ needs.prepare-code-to-analyze.outputs.artifacts-upload-name }}
sources-upload-name: ${{ needs.prepare-code-to-analyze.outputs.sources-upload-name }}
maven-artifacts: >
org.axonframework:axon-eventsourcing:${{ needs.prepare-code-to-analyze.outputs.project-version }},
org.axonframework:axon-messaging:${{ needs.prepare-code-to-analyze.outputs.project-version }},
org.axonframework:axon-modelling:${{ needs.prepare-code-to-analyze.outputs.project-version }},
org.axonframework:axon-test:${{ needs.prepare-code-to-analyze.outputs.project-version }},
org.axonframework:axon-server-connector:${{ needs.prepare-code-to-analyze.outputs.project-version }},
org.axonframework:axon-common:${{ needs.prepare-code-to-analyze.outputs.project-version }},
org.axonframework:axon-update:${{ needs.prepare-code-to-analyze.outputs.project-version }},
org.axonframework:axon-conversion:${{ needs.prepare-code-to-analyze.outputs.project-version }},
org.axonframework.extensions.spring:axon-spring-boot-autoconfigure:${{ needs.prepare-code-to-analyze.outputs.project-version }},
org.axonframework.extensions.tracing:axon-tracing-opentelemetry:${{ needs.prepare-code-to-analyze.outputs.project-version }},
org.axonframework.extensions.metrics:axon-metrics-micrometer:${{ needs.prepare-code-to-analyze.outputs.project-version }}
source-repository: https://github.com/AxonFramework/AxonFramework.git
source-repository-branch: axon-${{ needs.prepare-code-to-analyze.outputs.project-version }}
source-repository-history-only: true
ref: v3.1.1


Expand Down
Loading