@qshift/plugin-quarkus-backend
v0.1.28
Published
This plugin proposes 2 actions able to:
Downloads
58
Readme
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