mirror of
https://github.com/Kingsrook/qqq.git
synced 2025-07-18 13:10:44 +00:00
Merge pull request #15 from Kingsrook/feature/QQQ-6-circle-ci-setup
Feature/qqq 6 circle ci setup
This commit is contained in:
77
.circleci/config.yml
Normal file
77
.circleci/config.yml
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
version: 2.1
|
||||||
|
|
||||||
|
executors:
|
||||||
|
java17:
|
||||||
|
docker:
|
||||||
|
- image: 'cimg/openjdk:17.0'
|
||||||
|
resource_class: small
|
||||||
|
|
||||||
|
orbs:
|
||||||
|
slack: circleci/slack@4.10.1
|
||||||
|
|
||||||
|
commands:
|
||||||
|
run_maven:
|
||||||
|
parameters:
|
||||||
|
maven_subcommand:
|
||||||
|
default: test
|
||||||
|
type: string
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- restore_cache:
|
||||||
|
keys:
|
||||||
|
- v1-dependencies-{{ checksum "pom.xml" }}
|
||||||
|
- run:
|
||||||
|
name: Run Maven
|
||||||
|
command: |
|
||||||
|
mvn -s .circleci/mvn-settings.xml << parameters.maven_subcommand >>
|
||||||
|
- run:
|
||||||
|
name: Save test results
|
||||||
|
command: |
|
||||||
|
mkdir -p ~/test-results/junit/
|
||||||
|
find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} ~/test-results/junit/ \;
|
||||||
|
when: always
|
||||||
|
- store_test_results:
|
||||||
|
path: ~/test-results
|
||||||
|
- save_cache:
|
||||||
|
paths:
|
||||||
|
- ~/.m2
|
||||||
|
key: v1-dependencies-{{ checksum "pom.xml" }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
mvn_test:
|
||||||
|
executor: java17
|
||||||
|
steps:
|
||||||
|
- run_maven:
|
||||||
|
maven_subcommand: test
|
||||||
|
- slack/notify:
|
||||||
|
event: fail
|
||||||
|
|
||||||
|
mvn_deploy:
|
||||||
|
executor: java17
|
||||||
|
steps:
|
||||||
|
- run_maven:
|
||||||
|
maven_subcommand: deploy
|
||||||
|
- slack/notify:
|
||||||
|
event: always
|
||||||
|
|
||||||
|
workflows:
|
||||||
|
test_only:
|
||||||
|
jobs:
|
||||||
|
- mvn_test:
|
||||||
|
context: [ qqq-maven-registry-credentials, kingsrook-slack ]
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
ignore: /dev/
|
||||||
|
tags:
|
||||||
|
ignore: /version-.*/
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
jobs:
|
||||||
|
- mvn_deploy:
|
||||||
|
context: [ qqq-maven-registry-credentials, kingsrook-slack ]
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only: /dev/
|
||||||
|
tags:
|
||||||
|
only: /version-.*/
|
||||||
|
|
9
.circleci/mvn-settings.xml
Normal file
9
.circleci/mvn-settings.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
|
||||||
|
<servers>
|
||||||
|
<server>
|
||||||
|
<id>github-qqq-maven-registry</id>
|
||||||
|
<username>${env.QQQ_MAVEN_REGISTRY_USERNAME}</username>
|
||||||
|
<password>${env.QQQ_MAVEN_REGISTRY_PASSWORD}</password>
|
||||||
|
</server>
|
||||||
|
</servers>
|
||||||
|
</settings>
|
35
.github/workflows/maven.yml
vendored
35
.github/workflows/maven.yml
vendored
@ -1,35 +0,0 @@
|
|||||||
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
|
|
||||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
|
|
||||||
|
|
||||||
name: Java CI with Maven
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main ]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Set up JDK 17
|
|
||||||
uses: actions/setup-java@v2
|
|
||||||
with:
|
|
||||||
java-version: '17'
|
|
||||||
distribution: 'adopt'
|
|
||||||
cache: maven
|
|
||||||
- name: maven-settings-xml-action
|
|
||||||
uses: whelk-io/maven-settings-xml-action@v20
|
|
||||||
with:
|
|
||||||
servers: '[{ "id": "github-qqq-maven-registry", "username": "${{ secrets.QQQ_MAVEN_REGISTRY_USERNAME }}", "password": "${{ secrets.QQQ_MAVEN_REGISTRY_PASSWORD }}" }]'
|
|
||||||
repositories: '[{ "id": "github-qqq-maven-registry", "url": "https://maven.pkg.github.com/Kingsrook/qqq-maven-registry", "snapshots": { "enabled": "true" }}]'
|
|
||||||
- name: Build with Maven
|
|
||||||
run: mvn -B package --file pom.xml
|
|
||||||
- name: Publish to GitHub Packages Apache Maven
|
|
||||||
run: mvn deploy
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ github.token }}
|
|
34
pom.xml
34
pom.xml
@ -20,14 +20,18 @@
|
|||||||
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>com.kingsrook.qqq</groupId>
|
<groupId>com.kingsrook.qqq</groupId>
|
||||||
<artifactId>qqq-middleware-picocli</artifactId>
|
<artifactId>qqq-middleware-picocli</artifactId>
|
||||||
<version>0.0-SNAPSHOT</version>
|
<version>0.0.0-SNAPSHOT</version>
|
||||||
|
|
||||||
|
<scm>
|
||||||
|
<connection>scm:git:git@github.com:Kingsrook/qqq-middleware-picocli.git</connection>
|
||||||
|
<developerConnection>scm:git:git@github.com:Kingsrook/qqq-middleware-picocli.git</developerConnection>
|
||||||
|
<tag>HEAD</tag>
|
||||||
|
</scm>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<!-- props specifically to this module -->
|
<!-- props specifically to this module -->
|
||||||
@ -47,12 +51,12 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.kingsrook.qqq</groupId>
|
<groupId>com.kingsrook.qqq</groupId>
|
||||||
<artifactId>qqq-backend-core</artifactId>
|
<artifactId>qqq-backend-core</artifactId>
|
||||||
<version>0.0-SNAPSHOT</version>
|
<version>0.0.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.kingsrook.qqq</groupId>
|
<groupId>com.kingsrook.qqq</groupId>
|
||||||
<artifactId>qqq-backend-module-rdbms</artifactId>
|
<artifactId>qqq-backend-module-rdbms</artifactId>
|
||||||
<version>0.0-SNAPSHOT</version>
|
<version>0.0.0-SNAPSHOT</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
@ -156,12 +160,28 @@
|
|||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>com.amashchenko.maven.plugin</groupId>
|
||||||
|
<artifactId>gitflow-maven-plugin</artifactId>
|
||||||
|
<version>1.18.0</version>
|
||||||
|
<configuration>
|
||||||
|
<gitFlowConfig>
|
||||||
|
<productionBranch>main</productionBranch>
|
||||||
|
<developmentBranch>dev</developmentBranch>
|
||||||
|
<versionTagPrefix>version-</versionTagPrefix>
|
||||||
|
</gitFlowConfig>
|
||||||
|
<skipFeatureVersion>true</skipFeatureVersion> <!-- Keep feature names out of versions -->
|
||||||
|
<postReleaseGoals>install</postReleaseGoals> <!-- Let CI run deploys -->
|
||||||
|
<commitDevelopmentVersionAtStart>true</commitDevelopmentVersionAtStart>
|
||||||
|
<versionDigitToIncrement>1</versionDigitToIncrement> <!-- In general, we update the minor -->
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>github</id>
|
<id>github-qqq-maven-registry</id>
|
||||||
<name>GitHub QQQ Maven Registry</name>
|
<name>GitHub QQQ Maven Registry</name>
|
||||||
<url>https://maven.pkg.github.com/Kingsrook/qqq-maven-registry</url>
|
<url>https://maven.pkg.github.com/Kingsrook/qqq-maven-registry</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
@ -67,6 +67,7 @@ public class TestUtils
|
|||||||
InputStream primeTestDatabaseSqlStream = TestUtils.class.getResourceAsStream("/prime-test-database.sql");
|
InputStream primeTestDatabaseSqlStream = TestUtils.class.getResourceAsStream("/prime-test-database.sql");
|
||||||
assertNotNull(primeTestDatabaseSqlStream);
|
assertNotNull(primeTestDatabaseSqlStream);
|
||||||
List<String> lines = (List<String>) IOUtils.readLines(primeTestDatabaseSqlStream);
|
List<String> lines = (List<String>) IOUtils.readLines(primeTestDatabaseSqlStream);
|
||||||
|
lines = lines.stream().filter(line -> !line.startsWith("-- ")).toList();
|
||||||
String joinedSQL = String.join("\n", lines);
|
String joinedSQL = String.join("\n", lines);
|
||||||
for(String sql : joinedSQL.split(";"))
|
for(String sql : joinedSQL.split(";"))
|
||||||
{
|
{
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
/*
|
--
|
||||||
* QQQ - Low-code Application Framework for Engineers.
|
-- QQQ - Low-code Application Framework for Engineers.
|
||||||
* Copyright (C) 2021-2022. Kingsrook, LLC
|
-- Copyright (C) 2021-2022. Kingsrook, LLC
|
||||||
* 651 N Broad St Ste 205 # 6917 | Middletown DE 19709 | United States
|
-- 651 N Broad St Ste 205 # 6917 | Middletown DE 19709 | United States
|
||||||
* contact@kingsrook.com
|
-- contact@kingsrook.com
|
||||||
* https://github.com/Kingsrook/
|
-- https://github.com/Kingsrook/
|
||||||
*
|
--
|
||||||
* This program is free software: you can redistribute it and/or modify
|
-- This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU Affero General Public License as
|
-- it under the terms of the GNU Affero General Public License as
|
||||||
* published by the Free Software Foundation, either version 3 of the
|
-- published by the Free Software Foundation, either version 3 of the
|
||||||
* License, or (at your option) any later version.
|
-- License, or (at your option) any later version.
|
||||||
*
|
--
|
||||||
* This program is distributed in the hope that it will be useful,
|
-- This program is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* GNU Affero General Public License for more details.
|
-- GNU Affero General Public License for more details.
|
||||||
*
|
--
|
||||||
* You should have received a copy of the GNU Affero General Public License
|
-- You should have received a copy of the GNU Affero General Public License
|
||||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
--
|
||||||
|
|
||||||
DROP TABLE IF EXISTS person;
|
DROP TABLE IF EXISTS person;
|
||||||
CREATE TABLE person
|
CREATE TABLE person
|
||||||
|
Reference in New Issue
Block a user