Skip to content

Commit c817803

Browse files
authored
Update evaluate-expressions-in-workflows-and-actions.md
Removed Unnecessary explanations
1 parent 2bdfaeb commit c817803

File tree

1 file changed

+0
-44
lines changed

1 file changed

+0
-44
lines changed

content/actions/writing-workflows/choosing-what-your-workflow-does/evaluate-expressions-in-workflows-and-actions.md

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -111,50 +111,6 @@ env:
111111

112112
% data variables.product.prodname_dotcom %} provides a way to create conditional logic in expressions using binary logical operators (`&&` and `||`). This pattern can be used to achieve similar functionality to the ternary operator (`?:`) found in many programming languages, while actually using only binary operators.
113113

114-
## Example:
115-
{% raw %}
116-
```yaml
117-
env:
118-
MY_ENV_VAR: ${{ github.ref == 'refs/heads/main' && 'value_for_main_branch' || 'value_for_other_branches' }}
119-
```
120-
{% endraw %}
121-
122-
In this example, we're using logical operators to set the value of the `MY_ENV_VAR` environment variable based on whether the {% data variables.product.prodname_dotcom %} reference is set to `refs/heads/main` or not.
123-
124-
### How It Works
125-
126-
This expression uses two binary operators:
127-
- `&&` (logical AND): Returns the right operand if the left operand is truthy, otherwise returns the left operand
128-
- `||` (logical OR): Returns the left operand if it's truthy, otherwise returns the right operand
129-
130-
### Order of Operations
131-
132-
The order of operations is important to understand:
133-
1. The equality comparison (`==`) is evaluated first
134-
2. The logical AND (`&&`) has higher precedence than logical OR (`||`)
135-
3. The expression is evaluated as `(github.ref == 'refs/heads/main' && 'value_for_main_branch') || 'value_for_other_branches'`
136-
137-
### Step-by-Step Evaluation
138-
139-
When `github.ref == 'refs/heads/main'` is true:
140-
1. `github.ref == 'refs/heads/main'` evaluates to `true`
141-
2. `true && 'value_for_main_branch'` evaluates to `'value_for_main_branch'`
142-
3. `'value_for_main_branch' || 'value_for_other_branches'` evaluates to `'value_for_main_branch'`
143-
144-
When `github.ref == 'refs/heads/main'` is false:
145-
1. `github.ref == 'refs/heads/main'` evaluates to `false`
146-
2. `false && 'value_for_main_branch'` evaluates to `false`
147-
3. `false || 'value_for_other_branches'` evaluates to `'value_for_other_branches'`
148-
149-
### Important Considerations
150-
151-
- This is NOT a true ternary operator (which would take the form `condition ? true_value : false_value`), but rather two binary operators arranged to achieve similar functionality
152-
- The expression after `&&` must evaluate to a truthy value to work correctly
153-
- If the expression after `&&` is falsy (empty string, zero, false, null), the value after `||` will be returned even if the initial condition is true
154-
- The evaluation follows standard JavaScript-like operator precedence rules
155-
156-
For complex conditional logic, you might prefer using job conditionals or separate if-steps.
157-
158114
## Functions
159115

160116
{% data variables.product.prodname_dotcom %} offers a set of built-in functions that you can use in expressions. Some functions cast values to a string to perform comparisons. {% data variables.product.prodname_dotcom %} casts data types to a string using these conversions:

0 commit comments

Comments
 (0)