Pipeline Forms
  • General Product Information
    • 💡Concept & Goals
    • 🎆How PFO works securely
    • 🦋Features
  • User Guides
    • 👨‍🏫Administration Guide
      • 🚀Installation
      • 📊Admin hub
    • 🧑‍🎤User Guide
      • 📝Create Forms
        • ♟️Syntax for the pipeline-forms.yml file
        • Variables
      • 🏃‍♂️Run pipelines
        • ✋Manual execution
        • ⏱️Schedule a Form
      • 🔐Audit logs
  • Additional Information
    • 🆕Release Notes
    • ❓FAQ
    • 💸Pricing
    • 🪞Examples
      • 🌟Showcase an example with every feature used in the form
      • 🤖Standup Shuffle Bot for Slack
Powered by GitBook
On this page
  • STEP 1 - bitbucket-pipelines.yml
  • STEP 2 - pipeline-forms.yml
  • STEP 3 - Open Pipeline Forms
  1. Additional Information
  2. Examples

Showcase an example with every feature used in the form

PreviousExamplesNextStandup Shuffle Bot for Slack

Last updated 1 year ago

The purpose of this example is to showcase all available features in PFO. It should help you to kickoff your config with a quick copy paste, and try field behaviours in your environment.

This example includes a:

  • bitbucket-pipelines.yml - needed for pipeline configuration

  • pipeline-forms.yml - needed for forms configuration

STEP 1 - bitbucket-pipelines.yml

Pipelines should be enabled in the Repository settings / Pipelines / Settings menu

After this you should navigate to your bitbucket-pipelines.yml and edit the file. It can be done from:

  • the UI editor in Bitbucket

  • any text editor you use for version control

image: node:18

definitions:
  caches:
    sonar: /root/.sonar/cache
    frontend-node: static/frontend/node_modules
  steps:
    - step:
        name: Templates
        script:
          - &build-backend-script |
            npm install
            npm run build
          - &cd-frontend-run-install-script |
            cd ./static/frontend
            npm install -f
          - &build-frontend-script |
            cd ./static/frontend
            npm install -f
            npm run build
          - &cd-forge |
            cd forge
          - &cd-root |
            cd ../../
            
pipelines:
  custom:
    Demonstration pipeline: 
      - step: 
          name: Custom Step
          script:
           - echo "This step will run on a cloud runner.";
           - printenv
    Pipeline without forms: 
      - step: 
          name: Custom Step
          script:
           - echo "This step will run on a cloud runner.";
           - printenv

Commit your changes.

STEP 2 - pipeline-forms.yml

Open your source code and add a new file on the root level, next to bitbucket-pipelines.yml, named pipeline-forms.yml.

If you struggle creating this file, check out this part of the documentation:

Edit the file with the following content:

groups:
  - label: Mega Preset
    key: MEGA
fields:
  - &atlassian_base-url-text-field
    label: Atlassian base URL
    type: text
    name: ATLASSIAN_BASE_URL
    defaultValue: https://bitbucket.org
    mandatory: true
    note: Atlassian base URL
  - &workspace-text-field
    label: Workspace
    type: text
    name: WORKSPACE
    mandatory: true
    note: Bitbucket workspace
  - &repository-text-field
    label: Repository
    type: text
    name: REPOSITORY
    mandatory: true
    note: Bitbucket repository
  - &bitbucket-site-url-text-field
    label: Target Bitbucket site URL
    type: text
    name: SITE_URL
    mandatory: true
    note: Target bitbucket site URL
  - &environment-text-field
    label: Environment
    type: text
    name: ENVIRONMENT
    mandatory: true
    note: production or staging or other dev environment
  - &forge-email-text-field
    label: Atlassian account email
    type: text
    name: FORGE_EMAIL
    mandatory: true
    note: Atlassian account email
  - &forge-password-text-field
    label: Forge API token
    type: text
    name: FORGE_API_TOKEN
    mandatory: true
    secure: true
    note: Forge api token
  - &example-text-field
    label: Text field
    type: text
    name: EXAMPLE_TEXT
  - &example-regex-text-field
    label: Regex test field
    type: text
    name: EXAMPLE_REGEX_TEXT
    regex: ^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})$
    note: Valid email addresses only
  - &example-select-field
    label: Menu
    type: select
    name: EXAMPLE_SELECT
    readonly: true
    defaultValue: Soup
    availableValues:
      - Soup
      - Meal
      - Dessert
  - &example-remote-select-field
    label: Remote Jira version
    type: remote_select
    name: EXAMPLE_REMOTE_SELECT
    availableValues:
      url: "https://hub.docker.com/v2/repositories/atlassian/jira-software/tags/?page=1&page_size=100&name=8"
      path: "$.results.[*].name"
  - &example-number-field
    label: Numbers
    type: number
    name: EXAMPLE_NUMBER
  - &example-textarea-field
    label: Big input here
    type: textarea
    name: EXAMPLE_TEXTAREA
  - &example-checkbox-field
    label: Agreement
    type: checkbox
    name: EXAMPLE_CHECKBOX
  - &example-checkbox-group-field
    label: Select any options
    type: checkbox_group
    name: EXAMPLE_CHECKBOX_GROUP
    availableValues:
      - Jira
      - Confluence
      - Bitbucket
      - Other
  - &example-radio-field
    label: Which radio are you listening?
    type: radio
    name: EXAMPLE_RADIO
    availableValues:
      - Radio 1
      - Blues Radio
      - HipHop Radio
      - Other
  - &example-date-field
    label: Deadline
    type: date
    name: EXAMPLE_DATE
forms:
  - name: Run selenium tests
    fields:
      - *atlassian_base-url-text-field
      - *workspace-text-field
      - *repository-text-field
    pipeline: run-e2e-tests
  - name: Upgrade app
    fields:
      - *forge-email-text-field
      - *forge-password-text-field
      - *bitbucket-site-url-text-field
      - *environment-text-field
    pipeline: upgrade-installed-app
  - name: Example with all fields
    fields:
      - *example-text-field
      - *example-regex-text-field
      - *example-select-field
      - *example-remote-select-field
      - *example-number-field
      - *example-textarea-field
      - *forge-password-text-field
      - *example-checkbox-field
      - *example-checkbox-group-field
      - *example-radio-field
      - *example-date-field
    pipeline: Demonstration pipeline
    groups:
      - MEGA
  - name: Example with all overwritten fields
    fields:
      - <<: *example-text-field
        mandatory: true
      - <<: *example-select-field
        readonly: false
        defaultValue: Meal
      - <<: *example-textarea-field
        mandatory: true
      - <<: *example-checkbox-field
        defaultValue: true
        readonly: true
    pipeline: Demonstration pipeline
    groups:
      - MEGA

Commit your changes.

STEP 3 - Open Pipeline Forms

From the sidebar, open the Pipeline Forms menu.

Select your commit and select the form named "Example with all fields".

Your form is ready to use!

🪞
🌟
📝Create Forms
Enable pipelines in your repository
Example form in action