diff --git a/.changeset/big-meals-fly.md b/.changeset/big-meals-fly.md new file mode 100644 index 0000000000..be88400227 --- /dev/null +++ b/.changeset/big-meals-fly.md @@ -0,0 +1,8 @@ +--- +'@backstage/plugin-scaffolder-backend': patch +'@backstage/plugin-scaffolder-backend-module-cookiecutter': patch +'@backstage/plugin-scaffolder-backend-module-rails': patch +'@backstage/plugin-scaffolder-backend-module-yeoman': patch +--- + +Updating documentation for supporting `apiVersion: scaffolder.backstage.io/v1beta3` diff --git a/docs/features/software-templates/migrating-from-v1beta2-to-v1beta3.md b/docs/features/software-templates/migrating-from-v1beta2-to-v1beta3.md index 559cb036e0..1f771b4eaf 100644 --- a/docs/features/software-templates/migrating-from-v1beta2-to-v1beta3.md +++ b/docs/features/software-templates/migrating-from-v1beta2-to-v1beta3.md @@ -162,6 +162,24 @@ away in future versions and the `RepoUrlPicker` will return an object so `parameters.repoUrl` will already be a `{ host: string; owner: string; repo: string }` 🚀 +## Links should be used instead of named outputs + +Previously, it was possible to provide links to the frontend using the named output `entityRef` and `remoteUrl`. +These should be moved to `links` under the `output` object instead. + +```diff + output: +- remoteUrl: '{{ steps.publish.output.remoteUrl }}' +- entityRef: '{{ steps.register.output.entityRef }}' ++ links: ++ - title: Repository ++ url: ${{ steps.publish.output.remoteUrl }} ++ - title: Open in catalog ++ icon: catalog ++ entityRef: ${{ steps.register.output.entityRef }} + +``` + ### Summary Of course, we're always available on [discord](https://discord.gg/MUpMjP2) if diff --git a/docs/features/software-templates/writing-custom-field-extensions.md b/docs/features/software-templates/writing-custom-field-extensions.md index fab2e1e2cb..d5d4afbff2 100644 --- a/docs/features/software-templates/writing-custom-field-extensions.md +++ b/docs/features/software-templates/writing-custom-field-extensions.md @@ -141,7 +141,7 @@ Once it's been passed to the `ScaffolderPage` you should now be able to use the Something like this: ```yaml -apiVersion: backstage.io/v1beta2 +apiVersion: scaffolder.backstage.io/v1beta3 kind: Template metadata: name: Test template diff --git a/plugins/scaffolder-backend-module-cookiecutter/README.md b/plugins/scaffolder-backend-module-cookiecutter/README.md index 77ae93c5f3..f40200ee4d 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/README.md +++ b/plugins/scaffolder-backend-module-cookiecutter/README.md @@ -44,7 +44,7 @@ return await createRouter({ After that you can use the action in your template: ```yaml -apiVersion: backstage.io/v1beta2 +apiVersion: scaffolder.backstage.io/v1beta3 kind: Template metadata: name: cookiecutter-demo @@ -109,30 +109,31 @@ spec: input: url: ./template values: - name: '{{ parameters.name }}' - owner: '{{ parameters.owner }}' - system: '{{ parameters.system }}' - destination: '{{ parseRepoUrl parameters.repoUrl }}' + name: ${{ parameters.name }} + owner: ${{ parameters.owner }} + system: ${{ parameters.system }} + destination: ${{ parameters.repoUrl | parseRepoUrl }} - id: publish - if: '{{ not parameters.dryRun }}' + if: ${{ parameters.dryRun !== true }} name: Publish action: publish:github input: - allowedHosts: ['github.com'] - description: 'This is {{ parameters.name }}' - repoUrl: '{{ parameters.repoUrl }}' + allowedHosts: + - github.com + description: This is ${{ parameters.name }} + repoUrl: ${{ parameters.repoUrl }} - id: register - if: '{{ not parameters.dryRun }}' + if: ${{ parameters.dryRun !== true }} name: Register action: catalog:register input: - repoContentsUrl: '{{ steps.publish.output.repoContentsUrl }}' + repoContentsUrl: ${{ steps.publish.output.repoContentsUrl }} catalogInfoPath: '/catalog-info.yaml' - name: Results - if: '{{ parameters.dryRun }}' + if: ${{ parameters.dryRun }} action: debug:log input: listWorkspace: true @@ -140,10 +141,10 @@ spec: output: links: - title: Repository - url: '{{ steps.publish.output.remoteUrl }}' + url: ${{ steps.publish.output.remoteUrl }} - title: Open in catalog - icon: 'catalog' - entityRef: '{{ steps.register.output.entityRef }}' + icon: catalog + entityRef: ${{ steps.register.output.entityRef }} ``` You can also visit the `/create/actions` route in your Backstage application to find out more about the parameters this action accepts when it's installed to configure how you like. diff --git a/plugins/scaffolder-backend-module-rails/README.md b/plugins/scaffolder-backend-module-rails/README.md index 4ac52be941..6236549c9d 100644 --- a/plugins/scaffolder-backend-module-rails/README.md +++ b/plugins/scaffolder-backend-module-rails/README.md @@ -45,7 +45,7 @@ return await createRouter({ After that you can use the action in your template: ```yaml -apiVersion: backstage.io/v1beta2 +apiVersion: scaffolder.backstage.io/v1beta3 kind: Template metadata: name: rails-demo @@ -171,10 +171,10 @@ spec: input: url: ./template values: - name: '{{ parameters.name }}' - owner: '{{ parameters.owner }}' - system: '{{ parameters.system }}' - railsArguments: '{{ json parameters.railsArguments }}' + name: ${{ parameters.name }} + owner: ${{ parameters.owner }} + system: ${{ parameters.system }} + railsArguments: ${{ parameters.railsArguments }} - name: Write Catalog information action: catalog:write @@ -183,33 +183,34 @@ spec: apiVersion: 'backstage.io/v1alpha1' kind: Component metadata: - name: '{{ parameters.name }}' + name: ${{ parameters.name }} annotations: - github.com/project-slug: '{{ projectSlug parameters.repoUrl }}' + github.com/project-slug: ${{ parameters.repoUrl | projectSlug }} spec: type: service lifecycle: production - owner: '{{ parameters.owner }}' + owner: ${{ parameters.owner }} - id: publish - if: '{{ not parameters.dryRun }}' + if: ${{ parameters.dryRun !== true }} name: Publish action: publish:github input: - allowedHosts: ['github.com'] - description: 'This is {{ parameters.name }}' - repoUrl: '{{ parameters.repoUrl }}' + allowedHosts: + - github.com + description: This is ${{ parameters.name }} + repoUrl: ${{ parameters.repoUrl }} - id: register - if: '{{ not parameters.dryRun }}' + if: ${{ parameters.dryRun !== true }} name: Register action: catalog:register input: - repoContentsUrl: '{{ steps.publish.output.repoContentsUrl }}' + repoContentsUrl: ${{ steps.publish.output.repoContentsUrl }} catalogInfoPath: '/catalog-info.yaml' - name: Results - if: '{{ parameters.dryRun }}' + if: ${{ parameters.dryRun }} action: debug:log input: listWorkspace: true @@ -217,10 +218,10 @@ spec: output: links: - title: Repository - url: '{{ steps.publish.output.remoteUrl }}' + url: ${{ steps.publish.output.remoteUrl }} - title: Open in catalog - icon: 'catalog' - entityRef: '{{ steps.register.output.entityRef }}' + icon: catalog + entityRef: ${{ steps.register.output.entityRef }} ``` ### What you need to run that action @@ -240,8 +241,8 @@ steps: url: ./template imageName: repository/rails:tag values: - name: '{{ parameters.name }}' - owner: '{{ parameters.owner }}' - system: '{{ parameters.system }}' - railsArguments: '{{ json parameters.railsArguments }}' + name: ${{ parameters.name }} + owner: ${{ parameters.owner }} + system: ${{ parameters.system }} + railsArguments: ${{ parameters.railsArguments }} ``` diff --git a/plugins/scaffolder-backend-module-yeoman/README.md b/plugins/scaffolder-backend-module-yeoman/README.md index bacbb87648..4cc57eac4a 100644 --- a/plugins/scaffolder-backend-module-yeoman/README.md +++ b/plugins/scaffolder-backend-module-yeoman/README.md @@ -44,7 +44,7 @@ return await createRouter({ After that you can use the action in your template: ```yaml -apiVersion: backstage.io/v1beta2 +apiVersion: scaffolder.backstage.io/v1beta3 kind: Template metadata: name: yeoman-demo @@ -107,29 +107,30 @@ spec: name: Yeoman action: run:yeoman input: - namespace: 'org:codeowners' + namespace: org:codeowners options: - codeowners: '@{{ parameters.owner }}' + codeowners: '@${{ parameters.owner }}' - id: publish - if: '{{ not parameters.dryRun }}' + if: ${{ parameters.dryRun !== true }} name: Publish action: publish:github input: - allowedHosts: ['github.com'] - description: 'This is {{ parameters.name }}' - repoUrl: '{{ parameters.repoUrl }}' + allowedHosts: + - github.com + description: This is ${{ parameters.name }} + repoUrl: ${{ parameters.repoUrl }} - id: register - if: '{{ not parameters.dryRun }}' + if: ${{ parameters.dryRun !== true }} name: Register action: catalog:register input: - repoContentsUrl: '{{ steps.publish.output.repoContentsUrl }}' + repoContentsUrl: ${{ steps.publish.output.repoContentsUrl }} catalogInfoPath: '/catalog-info.yaml' - name: Results - if: '{{ parameters.dryRun }}' + if: ${{ parameters.dryRun }} action: debug:log input: listWorkspace: true @@ -137,10 +138,10 @@ spec: output: links: - title: Repository - url: '{{ steps.publish.output.remoteUrl }}' + url: ${{ steps.publish.output.remoteUrl }} - title: Open in catalog - icon: 'catalog' - entityRef: '{{ steps.register.output.entityRef }}' + icon: catalog + entityRef: ${{ steps.register.output.entityRef }} ``` You can also visit the `/create/actions` route in your Backstage application to find out more about the parameters this action accepts when it's installed to configure how you like. diff --git a/plugins/scaffolder-backend/sample-templates/bitbucket-demo/template.yaml b/plugins/scaffolder-backend/sample-templates/bitbucket-demo/template.yaml index 87f4d449f5..8b6ff302ac 100644 --- a/plugins/scaffolder-backend/sample-templates/bitbucket-demo/template.yaml +++ b/plugins/scaffolder-backend/sample-templates/bitbucket-demo/template.yaml @@ -1,9 +1,9 @@ -apiVersion: backstage.io/v1beta2 +apiVersion: scaffolder.backstage.io/v1beta3 kind: Template metadata: name: bitbucket-demo title: Test Bitbucket RepoUrlPicker template - description: scaffolder v1beta2 template demo publishing to bitbucket + description: scaffolder v1beta3 template demo publishing to bitbucket spec: owner: backstage/techdocs-core type: service @@ -49,8 +49,8 @@ spec: input: url: ./template values: - name: '{{ parameters.name }}' - owner: '{{ parameters.owner }}' + name: ${{ parameters.name }} + owner: ${{ parameters.owner }} - id: fetch-docs name: Fetch Docs @@ -63,16 +63,20 @@ spec: name: Publish action: publish:bitbucket input: - description: 'This is {{ parameters.name }}' - repoUrl: '{{ parameters.repoUrl }}' + description: This is ${{ parameters.name }} + repoUrl: ${{ parameters.repoUrl }} - id: register name: Register action: catalog:register input: - repoContentsUrl: '{{ steps.publish.output.repoContentsUrl }}' + repoContentsUrl: ${{ steps.publish.output.repoContentsUrl }} catalogInfoPath: '/catalog-info.yaml' output: - remoteUrl: '{{ steps.publish.output.remoteUrl }}' - entityRef: '{{ steps.register.output.entityRef }}' + links: + - title: Repository + url: ${{ steps.publish.output.remoteUrl }} + - title: Open in catalog + icon: catalog + entityRef: ${{ steps.register.output.entityRef }} diff --git a/plugins/scaffolder-backend/sample-templates/remote-templates.yaml b/plugins/scaffolder-backend/sample-templates/remote-templates.yaml index c5b2f1efea..a812c9ce52 100644 --- a/plugins/scaffolder-backend/sample-templates/remote-templates.yaml +++ b/plugins/scaffolder-backend/sample-templates/remote-templates.yaml @@ -11,4 +11,3 @@ spec: - https://github.com/backstage/software-templates/blob/main/scaffolder-templates/pull-request/template.yaml - https://github.com/backstage/software-templates/blob/main/scaffolder-templates/react-ssr-template/template.yaml - https://github.com/backstage/software-templates/blob/main/scaffolder-templates/springboot-grpc-template/template.yaml - - https://github.com/backstage/software-templates/blob/main/scaffolder-templates/v1beta2-demo/template.yaml