@qshift/plugin-quarkus-backend v0.1.28
Quarkus Scaffolder Backend
This plugin proposes 2 actions able to:
- Clone a Quarkus "Quickstart" repository. Action:
quarkus:quickstart:clone
- Create a Quarkus using the website
code.quarkus.io
able to generate a zip file of a Quarkus project and extensions selected (using extension list field). Action:quarkus:app:create
To use the scaffolder backend, import the package under the following path:
cd packages/backend
yarn add "@qshift/plugin-quarkus-backend"
yarn add "@backstage/integration"
quickstart:clone action
To use the Quarkus action able to clone a quarkus quickstart from this repository, then edit the file packages/backend/src/plugins/scaffolder.ts
to register the action: cloneQuarkusQuickstart
.
Here is a snippet example of code changed
import { ScmIntegrations } from '@backstage/integration';
import {createBuiltinActions, createRouter} from '@backstage/plugin-scaffolder-backend';
import { cloneQuarkusQuickstart } from '@internal/plugin-quarkus-backend';
...
const integrations = ScmIntegrations.fromConfig(env.config);
const builtInActions = createBuiltinActions({
integrations,
catalogClient,
config: env.config,
reader: env.reader,
});
const actions = [...builtInActions, cloneQuarkusQuickstart()];
return await createRouter({
actions,
The following table details the fields that you can use to use this action:
Input | Description | Type | Required |
---|---|---|---|
quickstartName | The name of the quickstart project to be used | string | Yes |
groupId | Maven GroupID | No | |
artifactId | Maven ArtifactID | No | |
targetPath | Target Path to access the code within the workspace | No | |
additionalProperties | Quarkus properties | No | |
database | Quarkus backend database (PostgreSQL, etc) | No | |
infoEndpoint | Quarkus API endpoint | No | |
healthEndpoint | Kubernetes Health ednpoint | No | |
metricsEndpoint | Enpoint exposing the Quarkus metrics | No |
Example of action:
steps:
- id: template
name: Generating the Source Code Component
action: quarkus:quickstart:clone
input:
values:
groupId: ${{ parameters.groupId }}
artifactId: ${{ parameters.artifactId }}
version: ${{ parameters.version }}
quickstartName: ${{ parameters.quickstartName }}
additionalProperties: ${{ parameters.additionalProperties }}
app:create action
To use the Quarkus action able to create a quarkus application using code.quarkus.io
, then edit the file packages/backend/src/plugins/scaffolder.ts
to register the action: createQuarkusApp
.
Here is a snippet example of code changed
import { ScmIntegrations } from '@backstage/integration';
import {createBuiltinActions, createRouter} from '@backstage/plugin-scaffolder-backend';
import { createQuarkusApp } from '@internal/plugin-quarkus-backend';
...
const integrations = ScmIntegrations.fromConfig(env.config);
const builtInActions = createBuiltinActions({
integrations,
catalogClient,
config: env.config,
reader: env.reader,
});
const actions = [...builtInActions, createQuarkusApp()];
return await createRouter({
actions,
The following table details the fields that you can use to use this action:
Input | Description | Type | Required |
---|---|---|---|
quarkusVersion | Quarkus version | string | No |
groupId | Maven GroupID | string | No |
artifactId | Maven ArtifactID | string | No |
version | Maven Version | string | No |
buildTool | Tool to be used to build: 'MAVEN', 'GRADLE', 'GRADLE_KOTLIN_DSL' | string | No |
extensions | List of the Quarkus extensions | array | No |
javaVersion | JDK version | string | No |
starterCode | Generate for the project some code to start ? | boolean | No |
targetPath | Target Path to access the code within the workspace | string | No |
additionalProperties | Quarkus properties | string | No |
database | Quarkus backend database (PostgreSQL, etc) | string | No |
infoEndpoint | Has a Quarkus API endpoint ? | boolean | No |
healthEndpoint | Has a Kubernetes Health endpoint ? | boolean | No |
metricsEndpoint | Has a Quarkus metrics endpoint ? | boolean | No |
Example of action:
steps:
- id: template
name: Generating the Source Code Component
action: quarkus:app:create
input:
values:
quarkusVersion: ${{ parameters.quarkusVersion[0] }}
groupId: ${{ parameters.groupId }}
artifactId: ${{ parameters.artifactId }}
version: ${{ parameters.version }}
buildTool: ${{ parameters.buildTool }}
javaVersion: ${{ parameters.javaVersion }}
extensions: ${{ parameters.extensions }}
database: ${{ parameters.database }}
infoEndpoint: ${{ parameters.infoEndpoint }}
healthEndpoint: ${{ parameters.healthEndpoint }}
metricsEndpoint: ${{ parameters.metricsEndpoint }}
additionalProperties: ${{ parameters.additionalProperties }}
starterCode: true
2 months ago
2 months ago
2 months ago
3 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago
3 months ago
4 months ago
4 months ago
4 months ago
4 months ago
4 months ago