Skip to content

Instantly share code, notes, and snippets.

@pritidesai
Last active November 3, 2020 07:12
Show Gist options
  • Save pritidesai/f9d058cc6e96130303c51caae31c7e92 to your computer and use it in GitHub Desktop.
Save pritidesai/f9d058cc6e96130303c51caae31c7e92 to your computer and use it in GitHub Desktop.
Resource resource = GetResource()
try 
{
    // Perform actions with the resource.
    ...
}
finally 
{
    // Resource might not been acquired, or already freed
    if (resource != null) 
        ((IDisposable)resource).Dispose(); 
}

Tekton Style:

kind: Pipeline
spec:
  params:
    - name: resource # pipeline level param
  tasks:
    - name: get-resource # get resource task initializes resource
      taskRef:
        name: get-resource
    - name: process-resource
      params:
        - name: resource
          value: $(tasks.get-resource.results.resource)
      taskRef:
        name: get-resource
  finally:
    - name: dispose-resource
      taskRef:
        name: dispose-resource
      params:
        - name: resource
          value: $(tasks.get-resource.results.resource)

Output to Pipeline Param

kind: Pipeline
spec:
  params:
    - name: resource # pipeline level param
  tasks:
    - name: get-resource # get resource task initializes resource
      output:
        - name: resource # name of the task result
          value: $(params.resource) # task result resource is initializing pipeline param resource
      taskRef:
        name: get-resource
    - name: process-resource
      runAfter: [ get-resource ]
      params:
        - name: resource
          value: $(params.resource)
      taskRef:
        name: get-resource
  finally:
    - name: dispose-resource
      taskRef:
        name: dispose-resource
      params:
        - name: resource
          value: $(params.resource)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment