diff --git a/.ci.yaml b/.ci.yaml
deleted file mode 100644
index 1776bb8..0000000
--- a/.ci.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-schema: 1
-
-scoped_delegation: true
-
-verification:
- push:
- branches: [main, master, dev, rc, "release/**", "hotfix/**", "qualification/**"]
-
-components:
- library:
- directory: .
- platforms: [linux-amd64]
- toolchains:
- java: "21"
- build:
- tool: maven
- # Shared verification uses the release version property so unchanged tested outputs can be reused.
- commands:
- - ["--batch-mode", "--update-snapshots", "-T4", "--no-transfer-progress", "verify"]
- - ["--batch-mode", "--no-transfer-progress", "org.codehaus.mojo:flatten-maven-plugin:1.7.3:flatten", "-Dflatten.mode=resolveCiFriendliesOnly", "-DupdatePomFile=true"]
- reports:
- junit: "**/target/surefire-reports/*.xml"
- artifacts:
- packages:
- format: maven
- # Retain the generated consumer POM alongside the tested JAR; both are required for publication.
- paths: [".flattened-pom.xml", "target/*.jar"]
-
-release:
- channels:
- snapshot:
- trigger:
- push_branches: [develop]
- versioning: maven-snapshot
- effective_version:
- rule: develop-next-minor
- central_completion: true
- version_write_back: {}
- # Release candidates: a push to release/X.Y derives X.Y.0-RC.n with the existing rc-from-branch rule (the first RC of a branch that declares
- # X.Y.Z-SNAPSHOT is RC.1); maven-release refuses a SNAPSHOT effective version. Published to the same destination as the snapshot, with the same
- # Central completion and source write-back policy.
- release-candidate:
- trigger:
- push_branches: ["release/*"]
- versioning: maven-release
- effective_version:
- rule: rc-from-branch
- central_completion: true
- version_write_back: {}
- publications:
- qbit-sftp-packages:
- component: library
- artifact: packages
- destination: qrun-maven
- channels: [snapshot, release-candidate]
diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml
new file mode 100644
index 0000000..ed42608
--- /dev/null
+++ b/.gitea/workflows/build.yaml
@@ -0,0 +1,7 @@
+name: build
+on:
+ push:
+jobs:
+ maven:
+ uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/maven.yaml@main
+ secrets: inherit
diff --git a/.gitea/workflows/qrun-release.yaml b/.gitea/workflows/qrun-release.yaml
deleted file mode 100644
index 39860ec..0000000
--- a/.gitea/workflows/qrun-release.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-# Standard QRun release caller (v2, thin contract): every push and manual dispatch delegates to the protected qrun-release-v1 channel. Do not edit per repository.
-name: qrun-release
-on:
- push: {}
- workflow_dispatch: {}
-permissions:
- contents: read
- actions: read
-jobs:
- release:
- # Develop and release candidates use the repository-owned shared pipeline configuration.
- if: ${{ github.ref != 'refs/heads/develop' && !startsWith(github.ref, 'refs/heads/release/') }}
- uses: self:KofTwentyTwo/platform-ci/.gitea/workflows/java-maven.yaml@qrun-release-v1
- with:
- runner: linux-small
- postpublish:
- if: ${{ needs.release.outputs.capture == 'true' }}
- needs: release
- permissions:
- contents: write
- actions: write
- uses: self:KofTwentyTwo/platform-ci/.gitea/workflows/qrun-source-version.yaml@qrun-release-v1
- with:
- runner: linux-small
diff --git a/.gitea/workflows/release-rc.yaml b/.gitea/workflows/release-rc.yaml
deleted file mode 100644
index 12ec9fc..0000000
--- a/.gitea/workflows/release-rc.yaml
+++ /dev/null
@@ -1,72 +0,0 @@
-name: Release candidate
-'on':
- workflow_dispatch:
- inputs:
- dry_run:
- description: Plan a cut without changing release state
- type: boolean
- default: false
- finalize:
- description: Retry finalization of an existing cut; do not cut another RC
- type: boolean
- default: false
- recover:
- description: Recover the same published RC after a deployment timeout; never
- reupload
- type: boolean
- default: false
- circle_build:
- description: Original release run id (recovery only)
- type: string
- default: ''
- merge_sha:
- description: Existing cut merge_sha (finalize retry only)
- type: string
- default: ''
- bump_sha:
- description: Existing cut bump_sha (finalize retry only)
- type: string
- default: ''
- branch:
- description: Existing cut branch (finalize retry only)
- type: string
- default: ''
- version:
- description: Existing cut version (finalize retry only)
- type: string
- default: ''
- pull_request:
- types:
- - closed
- branches:
- - develop
-permissions:
- contents: read
-jobs:
- release-rc:
- # The old qbit-rc-published repository_dispatch is replaced by the already-proven workflow_dispatch
- # completion: the publisher's own ActionsWRITE job dispatches this workflow with finalize=true plus
- # merge_sha/bump_sha/branch/version (same inputs as the manual finalize retry).
- permissions:
- contents: write
- actions: read
- pull-requests: write
- if: github.event_name == 'workflow_dispatch'
- || (github.event_name == 'pull_request' && github.event.pull_request.merged
- == true && github.event.pull_request.base.ref == 'develop' && contains(github.event.pull_request.labels.*.name,
- 'release:rc'))
- uses: self:KofTwentyTwo/platform-ci/.gitea/workflows/qbit-release-rc.yaml@qrun-release-v1
- with:
- dry_run: ${{ github.event_name == 'workflow_dispatch' && inputs.dry_run || false
- }}
- finalize: ${{ github.event_name == 'workflow_dispatch' && inputs.finalize }}
- recover: ${{ github.event_name == 'workflow_dispatch' && inputs.recover || false
- }}
- circle_build: ${{ github.event_name == 'workflow_dispatch' && inputs.circle_build
- || '' }}
- merge_sha: ${{ inputs.merge_sha || '' }}
- bump_sha: ${{ inputs.bump_sha || '' }}
- branch: ${{ inputs.branch || '' }}
- version: ${{ inputs.version || '' }}
- secrets:
- QRUN_TAG_SIGNING_KEY: ${{ secrets.QRUN_TAG_SIGNING_KEY }}
diff --git a/README.md b/README.md
index 0a40d9a..37ccb3a 100644
--- a/README.md
+++ b/README.md
@@ -135,7 +135,7 @@ new QSftpImportMetaData()
## Project Status
-Stable and production-ready.
+Release candidate. Builds against QQQ `4.1.0-RC.22`; release candidates (`0.5.0-RC.N`) are published to the Gitea Maven registry at `https://git.kof22.com/api/packages/QRun-IO/maven`.
### Roadmap
diff --git a/pom.xml b/pom.xml
index 56e2b3d..dd5069d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,6 +23,7 @@
0.5.0-SNAPSHOT
+ 4.1.0-RC.22
@@ -70,10 +71,17 @@
+
+ com.kingsrook.qqq
+ qqq-bom-pom
+ ${qqq.version}
+ pom
+ import
+
org.junit
junit-bom
- 5.10.0
+ 6.0.2
pom
import
@@ -102,39 +110,5 @@
-
-
-
-
-
- qqq-snapshot
-
- 4.1.0-SNAPSHOT
-
-
-
-
- com.kingsrook.qqq
- qqq-bom-pom
- ${qqq.snapshot.version}
- pom
- import
-
-
-
-
-
- sonatype-snapshots
- https://central.sonatype.com/repository/maven-snapshots/
-
- false
-
-
- true
-
-
-
-
-
diff --git a/src/test/java/com/kingsrook/qbits/sftpdataintegration/BaseTest.java b/src/test/java/com/kingsrook/qbits/sftpdataintegration/BaseTest.java
index cf05200..c9369a7 100644
--- a/src/test/java/com/kingsrook/qbits/sftpdataintegration/BaseTest.java
+++ b/src/test/java/com/kingsrook/qbits/sftpdataintegration/BaseTest.java
@@ -43,7 +43,9 @@ import com.kingsrook.qqq.backend.core.model.session.QSession;
import com.kingsrook.qqq.backend.core.modules.backend.implementations.memory.MemoryBackendModule;
import com.kingsrook.qqq.backend.core.modules.backend.implementations.memory.MemoryRecordStore;
import com.kingsrook.qqq.backend.core.processes.tracing.LoggingProcessTracer;
+import com.kingsrook.qqq.backend.module.filesystem.base.model.metadata.Cardinality;
import com.kingsrook.qqq.backend.module.filesystem.local.model.metadata.FilesystemBackendMetaData;
+import com.kingsrook.qqq.backend.module.filesystem.local.model.metadata.FilesystemTableBackendDetails;
import org.apache.commons.io.FileUtils;
import org.junit.jupiter.api.BeforeEach;
@@ -110,7 +112,21 @@ public class BaseTest
/////////////////////////////////////
new SavedBulkLoadProfileMetaDataProvider().defineAll(qInstance, MEMORY_BACKEND_NAME, null);
qInstance.addPossibleValueSource(TablesPossibleValueSourceMetaDataProvider.defineTablesPossibleValueSource(qInstance));
- new SavedReportsMetaDataProvider().defineAll(qInstance, MEMORY_BACKEND_NAME, DESTINATION_FILESYSTEM_BACKEND_NAME, null);
+ new SavedReportsMetaDataProvider().defineAll(qInstance, MEMORY_BACKEND_NAME, DESTINATION_FILESYSTEM_BACKEND_NAME, table ->
+ {
+ if(!SavedReportsMetaDataProvider.REPORT_STORAGE_TABLE_NAME.equals(table.getName()))
+ {
+ return;
+ }
+
+ FilesystemTableBackendDetails details = new FilesystemTableBackendDetails();
+ details.withCardinality(Cardinality.ONE);
+ details.withBasePath("reports");
+ details.withGlob("*");
+ details.withContentsFieldName("contents");
+ details.withFileNameFieldName("reference");
+ table.setBackendDetails(details);
+ });
////////////////////////
// configure the qbit //