Types of State
JFrog Pipelines supports three types of state:
Each of these states is characterized by the scope of information persistence.
Run State
A pipeline'srun stateis persistent only between steps within the same run. Information stored in one step is available to subsequent steps in the run of that pipeline. After the run is complete,state may be downloaded when viewing the steps in that run but will not be available in later runs or other pipelines.
To preserve state across steps, use theutility functions for run state management.
Pipelines supports two types of run state information that can be preserved between steps.
Key-Value Pairs
Using theadd_run_variablesutility function, you can store a key-value pair to the run state. That key-value pair will automatically be available to all subsequent steps in the runas an environment variable.It will not be available to steps that do not have the step that added the variable as an input, either directly or through other steps or resources.
Files
Using theadd_run_filesutility function, a step can store a file in the run state. Any subsequent step can then use therestore_run_filesfunction to retrieve the file from the run state.Files are available to steps in the same run whether or not the step that added the files is an input to the later step. Run state may be downloaded for an individual step, consisting of the files either uploaded or downloaded by that step.
Download Run State
To download run state from the UI for debugging purposes, set the environment variableJFROG_PIPELINES_RUN_STATE_DEBUG=truein your step's or pipeline's configuration section. For storage efficiency, we recommend removing this configuration option after you are done debugging.
pipelines: - name: example_run_state_pipeline configuration: environmentVariables: readOnly: JFROG_PIPELINES_RUN_STATE_DEBUG: true steps: - name: step_1 type: Bash configuration: inputResources: - name: myAppRepo # Triggering resource execution: onExecute: - add_run_variables first_stepid=$step_id - add_run_variables ${first_stepid}_buildNumber=${run_number} onComplete: - add_run_files myfile cachefile.txt # save the variable 'myfile' as 'cachefile.txt'
Pipeline State
Apipeline stateis persistent for all runs of the same pipeline.ste信息存储p during a pipeline's run is available to subsequent runs of that pipeline.
To preserve state across pipelines, you may use theutility functions for pipeline state management.
Pipelines supports two types of run state information that can be preserved between steps.
Key-Value Pairs
Using theadd_pipeline_variablesutility function, you can store a key-value pair to the pipeline state. That key-value pair will automatically be available to all subsequent runs as an environment variable.
Files
Using theadd_pipeline_filesutility function, a step can store a file to the pipeline state. Any step can then use therestore_pipeline_filesfunction to retrieve the file from the pipeline state.
Resource-based State
Using thewrite_outpututility function, key-values can be stored as a property in any output resource. Every step that has the resource as aninput can access the key-value information in its scripts as an environment variable.
The environment variable for the value is of the formres_.
Resource-based state information is persistent across pipelines, so it can be used as a mechanism for passing information from one pipeline to the next.






