Required input does not prevent dependencies from running and dependencies do not share variables

Hey all, I am running into two problems with my build release task: 1. In my dependencies section I have duplications with the variables I want to pass to each dependency. Do we have a way to pass common variables to all dependencies instead of explicitly setting them for each dependency? 2. In my requires statement I have a few required variables. If a user does not pass all the required variables I do not want my task or its dependencies to run. Currently, my dependencies will all run and then my task will fail before it executes the command. Is that the expected behavior or am I able to block all dependencies from running as well if required parameters are not passed? Here is my build release task:
build:release:
summary: Builds and packages the application for supported distributions
preconditions:
# Validate version following semver regex validator: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
- sh: '[[ {{ .VERSION }} =~ ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ ]]'
msg: Invalid semantic version format "{{ .VERSION }}"
deps:
- task: test:one
vars:
PRODUCTION: "true"
VERSION: '{{ .VERSION }}'
DATE:
sh: date -u +'%Y-%m-%dT%H:%M:%SZ'
GIT_HASH:
sh: git rev-parse --verify HEAD
- task: test:two
vars:
PRODUCTION: "true"
VERSION: '{{ .VERSION }}'
DATE:
sh: date -u +'%Y-%m-%dT%H:%M:%SZ'
GIT_HASH:
sh: git rev-parse --verify HEAD
cmds:
- echo "ran"
requires:
vars: [APPLE_USERNAME, APPLE_PASSWORD, APPLE_TEAM_ID, APPLE_APPLICATION_IDENTITY, VERSION]
build:release:
summary: Builds and packages the application for supported distributions
preconditions:
# Validate version following semver regex validator: https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string
- sh: '[[ {{ .VERSION }} =~ ^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$ ]]'
msg: Invalid semantic version format "{{ .VERSION }}"
deps:
- task: test:one
vars:
PRODUCTION: "true"
VERSION: '{{ .VERSION }}'
DATE:
sh: date -u +'%Y-%m-%dT%H:%M:%SZ'
GIT_HASH:
sh: git rev-parse --verify HEAD
- task: test:two
vars:
PRODUCTION: "true"
VERSION: '{{ .VERSION }}'
DATE:
sh: date -u +'%Y-%m-%dT%H:%M:%SZ'
GIT_HASH:
sh: git rev-parse --verify HEAD
cmds:
- echo "ran"
requires:
vars: [APPLE_USERNAME, APPLE_PASSWORD, APPLE_TEAM_ID, APPLE_APPLICATION_IDENTITY, VERSION]
2 Replies
andreynering
andreynering5mo ago
Hi @Bluestopher, 1. I would move DATE and GIT_HASH as global variables, and just reference them on the calls with DATE: '{{.DATE}}' 2. You might want to create an issue about this so we can think about changing this behavior in the future.
Bluestopher
BluestopherOP5mo ago
@andreynering Thanks for the response. I'll post an issue about the behavior with an example to see if it has a usecase.
Want results from more Discord servers?
Add your server