Drone CI - How to set pipeline env var to result of CLI output

Solution 1:

Writing the command output to a script file might be a better way to do what you want, since filesystem changes are persisted between individual steps.

---
kind: pipeline
type: docker

steps:
  - name: generate-script
    image: bash
    commands:
      # - my-command > plugin-script.sh
      - printf "echo Fetching Google;\n\ncurl -I https://google.com/" > plugin-script.sh

  - name: test-script-1
    image: curlimages/curl
    commands:
      - sh plugin-script.sh

  - name: test-script-2
    image: curlimages/curl
    commands:
      - sh plugin-script.sh

From Drone's Docker pipeline documentation:

Workspace

Drone automatically creates a temporary volume, known as your workspace, where it clones your repository. The workspace is the current working directory for each step in your pipeline.

Because the workspace is a volume, filesystem changes are persisted between pipeline steps. In other words, individual steps can communicate and share state using the filesystem.

Workspace volumes are ephemeral. They are created when the pipeline starts and destroyed after the pipeline completes.