So i have a workflow with multiple jobs and environment variables. For example one variable called BRANCH
and it's value ${{ github.ref }}
.
The workflow has multiple jobs and each with a condition:
development:
name: Deploy to dev
needs: build
if: ${{ needs.build.outputs.environment == 'dev' }}
runs-on: ubuntu-latest
This works fine for each job, but as soon as I apply a second condition unexpected things happens..
development:
name: Deploy to dev
needs: build
if: ${{ needs.build.outputs.environment == 'dev' }} && env.BRANCH == 'loreem ipsum'
runs-on: ubuntu-latest
This always resolvs to true
, tested echo it out like:
echo ${{ needs.build.outputs.environment == 'dev' }} && env.BRANCH == 'loreem ipsum'
My initial guess is that it resolvs to <if expression> && true || false
But writing like below will not work, as 'env' is unknown to job.if.
if: ${{ needs.build.outputs.environment == 'dev' && env.BRANCH == 'loreem ipsum' }}
I even tried with
if: ${{ needs.build.outputs.environment == 'dev' }} && ${{ env.BRANCH == 'loreem ipsum' }}
So is this expected or is my syntax incorrect?