Skip to content

Commit e27de10

Browse files
authored
Add the workflows for building PRs to main and main itself. (#2)
* Add the workflows for building PRs to main and main itself.
1 parent 86b046c commit e27de10

20 files changed

+163
-248
lines changed

.github/workflows/component-build.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Build flow
2+
3+
on: [workflow_call]
4+
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v4
10+
- name: Configure Java version
11+
uses: actions/setup-java@v3
12+
with:
13+
java-version: '21'
14+
distribution: 'temurin'
15+
architecture: x64
16+
- name: Setup Gradle
17+
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5
18+
- name: Build code
19+
run: ./gradlew check
20+
- name: Upload build results
21+
uses: actions/upload-artifact@v4
22+
with:
23+
name: build-artifact
24+
path: |
25+
**/build/classes/**
26+
**/build/libs/*.jar
27+
**/build/jacoco/*.exec
28+
- name: Upload test results
29+
uses: actions/upload-artifact@v4
30+
with:
31+
name: test-artifact
32+
path: |
33+
**/build/test-results/**

.github/workflows/feature-build.yml

Lines changed: 0 additions & 24 deletions
This file was deleted.
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Validate Pull Request
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- master
7+
8+
jobs:
9+
build:
10+
uses: ./.github/workflows/component-build.yml
11+
code-quality:
12+
runs-on: ubuntu-latest
13+
needs: build
14+
steps:
15+
- uses: actions/checkout@v4
16+
- name: Configure Java version
17+
uses: actions/setup-java@v3
18+
with:
19+
java-version: '21'
20+
distribution: 'temurin'
21+
architecture: x64
22+
- name: Download build artifact
23+
uses: actions/download-artifact@v4
24+
with:
25+
name: build-artifact
26+
- name: Quality gate
27+
run: ./gradlew sonar -Dsonar.token=${{ secrets.SONAR_TOKEN }} -Dsonar.gradle.skipCompile=true -Dsonar.host.url=https://sonarcloud.io

.github/workflows/release-build.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Build Rest Application Release
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
8+
jobs:
9+
build:
10+
uses: ./.github/workflows/component-build.yml
11+
release:
12+
runs-on: ubuntu-latest
13+
needs: build
14+
steps:
15+
- uses: actions/checkout@v4
16+
- name: Configure Java version
17+
uses: actions/setup-java@v3
18+
with:
19+
java-version: '21'
20+
distribution: 'temurin'
21+
architecture: x64
22+
- name: Publish artifacts
23+
run: ./gradlew publish -x check
24+
env:
25+
NEXUS_PASSWORD: ${{ GITHUB_ACTOR }}
26+
NEXUS_USER: ${{ secrets.GITHUB_TOKEN }}
27+

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
# FinTrack
22
![Sonatype Nexus (Releases)](https://img.shields.io/nexus/r/com.jongsoft.finance/fintrack-api?server=https%3A%2F%2Foss.sonatype.org)
33
![Sonatype Nexus (Snapshots)](https://img.shields.io/nexus/s/com.jongsoft.finance/fintrack-api?server=https%3A%2F%2Foss.sonatype.org)
4-
![Bitbucket Pipelines](https://img.shields.io/bitbucket/pipelines/jongsoftdev/fintrack-application/master)
5-
[![SonarCloud Quality](https://sonarcloud.io/api/project_badges/measure?project=FinTrack%3AAPI&metric=alert_status&style=flat-square)](https://sonarcloud.io/dashboard?id=FinTrack%3AAPI)
6-
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=FinTrack%3AAPI&metric=coverage&style=flat-square)](https://sonarcloud.io/dashboard?id=FinTrack%3AAPI)
4+
![Release Build](https://github.com/pledger-io/rest-application/actions/workflows/release-build.yml/badge.svg)
5+
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=pledger-io_rest-application&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=pledger-io_rest-application)
6+
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=pledger-io_rest-application&metric=coverage)](https://sonarcloud.io/summary/new_code?id=pledger-io_rest-application)
77
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
88

99
-----------------------

bitbucket-pipelines.yml

Lines changed: 0 additions & 80 deletions
This file was deleted.

bpmn-process/build.gradle.kts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ micronaut {
44

55
dependencies {
66
annotationProcessor(mn.lombok)
7-
testAnnotationProcessor(mn.lombok)
87

98
implementation(libs.lang)
109
implementation(libs.lang.xml)
@@ -19,15 +18,15 @@ dependencies {
1918
// Investigate if this can be swapped for micronaut serde
2019
implementation(mn.micronaut.jackson.databind)
2120
implementation(mn.micronaut.serde.jackson)
21+
implementation(mn.validation)
2222

2323
implementation(project(":core"))
2424
implementation(project(":domain"))
2525
implementation(project(":rule-engine"))
2626

27+
// needed for the testing of the application
2728
runtimeOnly(mn.h2)
2829
runtimeOnly(mn.snakeyaml)
29-
implementation(mn.validation)
30-
3130
testRuntimeOnly(mn.logback.classic)
3231
testImplementation(mn.micronaut.test.junit5)
3332
testImplementation(libs.bundles.junit)

bpmn-process/src/test/java/com/jongsoft/finance/bpmn/AccountReconcileIT.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.jongsoft.finance.bpmn.process.RuntimeContext;
55
import com.jongsoft.finance.domain.account.Account;
66
import com.jongsoft.lang.Control;
7+
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
78
import org.apache.commons.lang3.mutable.MutableObject;
89
import org.assertj.core.api.Assertions;
910
import org.camunda.bpm.engine.variable.Variables;
@@ -14,6 +15,7 @@
1415
import java.math.BigDecimal;
1516
import java.math.RoundingMode;
1617

18+
@MicronautTest
1719
@ProcessExtension
1820
@DisplayName("Account reconciliation feature")
1921
class AccountReconcileIT {

bpmn-process/src/test/java/com/jongsoft/finance/bpmn/BudgetAnalysisIT.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.jongsoft.finance.domain.user.Budget;
99
import com.jongsoft.finance.providers.SettingProvider;
1010
import com.jongsoft.lang.Collections;
11+
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
1112
import jakarta.inject.Inject;
1213
import org.assertj.core.api.Assertions;
1314
import org.camunda.bpm.engine.variable.Variables;
@@ -16,6 +17,7 @@
1617
import org.junit.jupiter.api.Test;
1718
import org.mockito.Mockito;
1819

20+
@MicronautTest
1921
@ProcessExtension
2022
@DisplayName("Budget analysis feature")
2123
public class BudgetAnalysisIT {

bpmn-process/src/test/java/com/jongsoft/finance/bpmn/ContractWarningIT.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.jongsoft.finance.core.MailDaemon;
66
import com.jongsoft.finance.domain.account.Account;
77
import com.jongsoft.finance.domain.account.Contract;
8+
import io.micronaut.test.extensions.junit5.annotation.MicronautTest;
89
import org.assertj.core.api.Assertions;
910
import org.junit.jupiter.api.DisplayName;
1011
import org.junit.jupiter.api.Test;
@@ -17,6 +18,7 @@
1718
import java.util.Map;
1819
import java.util.Properties;
1920

21+
@MicronautTest
2022
@ProcessExtension
2123
@DisplayName("Contract warning feature")
2224
public class ContractWarningIT {

0 commit comments

Comments
 (0)