0.1.28 • Published 2 months ago

@qshift/plugin-quarkus-backend v0.1.28

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
2 months ago

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:

InputDescriptionTypeRequired
quickstartNameThe name of the quickstart project to be usedstringYes
groupIdMaven GroupIDNo
artifactIdMaven ArtifactIDNo
targetPathTarget Path to access the code within the workspaceNo
additionalPropertiesQuarkus propertiesNo
databaseQuarkus backend database (PostgreSQL, etc)No
infoEndpointQuarkus API endpointNo
healthEndpointKubernetes Health ednpointNo
metricsEndpointEnpoint exposing the Quarkus metricsNo

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:

InputDescriptionTypeRequired
quarkusVersionQuarkus versionstringNo
groupIdMaven GroupIDstringNo
artifactIdMaven ArtifactIDstringNo
versionMaven VersionstringNo
buildToolTool to be used to build: 'MAVEN', 'GRADLE', 'GRADLE_KOTLIN_DSL'stringNo
extensionsList of the Quarkus extensionsarrayNo
javaVersionJDK versionstringNo
starterCodeGenerate for the project some code to start ?booleanNo
targetPathTarget Path to access the code within the workspacestringNo
additionalPropertiesQuarkus propertiesstringNo
databaseQuarkus backend database (PostgreSQL, etc)stringNo
infoEndpointHas a Quarkus API endpoint ?booleanNo
healthEndpointHas a Kubernetes Health endpoint ?booleanNo
metricsEndpointHas a Quarkus metrics endpoint ?booleanNo

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
0.1.28

2 months ago

0.1.27

2 months ago

0.1.26

2 months ago

0.1.25

3 months ago

0.1.11

4 months ago

0.1.12

4 months ago

0.1.13

4 months ago

0.1.14

4 months ago

0.1.15

4 months ago

0.1.20

3 months ago

0.1.21

3 months ago

0.1.22

3 months ago

0.1.23

3 months ago

0.1.24

3 months ago

0.1.2

4 months ago

0.1.1

4 months ago

0.1.16

4 months ago

0.1.8

4 months ago

0.1.17

4 months ago

0.1.7

4 months ago

0.1.18

4 months ago

0.1.19

3 months ago

0.1.4

4 months ago

0.1.3

4 months ago

0.1.6

4 months ago

0.1.5

4 months ago

0.1.0

4 months ago