Default to not running scheduled builds on forks.

Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
This commit is contained in:
Pedro Algarvio 2023-03-05 10:15:56 +00:00 committed by Megan Wilhite
parent 18f431ed0d
commit 5a0a0c919a
6 changed files with 116 additions and 2 deletions

View file

@ -25,10 +25,33 @@ concurrency:
jobs:
workflow-requirements:
name: Check Workflow Requirements
runs-on: ubuntu-latest
outputs:
requirements-met: ${{ fromJSON(steps.check-requirements.outputs.requirements-met) }}
steps:
- name: Check Requirements
id: check-requirements
run: |
if [ "${RUN_SCHEDULED_BUILDS}" -eq 1 ]; then
echo "Running workflow because RUN_SCHEDULED_BUILDS=1"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
elif [ "${{ github.event.repository.fork }}" = "true" ]; then
echo "Not running workflow because ${{ github.repository }} is a fork"
echo "requirements-met=false" >> "${GITHUB_OUTPUT}"
else
echo "Running workflow because ${{ github.repository }} is not a fork"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
fi
trigger-branch-nightly-builds:
name: Trigger Branch Schedule Workflows
if: ${{ github.event_name == 'schedule' }}
runs-on: ubuntu-latest
runs-on:
- ubuntu-latest
needs:
- workflow-requirements
steps:
- name: Trigger 3006.x branch
env:
@ -39,6 +62,9 @@ jobs:
prepare-workflow:
name: Prepare Workflow Run
runs-on: ubuntu-latest
if: ${{ needs.workflow-requirements.outputs.requirements-met }}
needs:
- workflow-requirements
outputs:
jobs: ${{ steps.define-jobs.outputs.jobs }}
runners: ${{ steps.runner-types.outputs.runners }}
@ -1745,6 +1771,7 @@ jobs:
if: always()
runs-on: ubuntu-latest
needs:
- workflow-requirements
- trigger-branch-nightly-builds
- prepare-workflow
- pre-commit

View file

@ -23,9 +23,32 @@ concurrency:
jobs:
workflow-requirements:
name: Check Workflow Requirements
runs-on: ubuntu-latest
outputs:
requirements-met: ${{ fromJSON(steps.check-requirements.outputs.requirements-met) }}
steps:
- name: Check Requirements
id: check-requirements
run: |
if [ "${RUN_SCHEDULED_BUILDS}" -eq 1 ]; then
echo "Running workflow because RUN_SCHEDULED_BUILDS=1"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
elif [ "${{ github.event.repository.fork }}" = "true" ]; then
echo "Not running workflow because ${{ github.repository }} is a fork"
echo "requirements-met=false" >> "${GITHUB_OUTPUT}"
else
echo "Running workflow because ${{ github.repository }} is not a fork"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
fi
prepare-workflow:
name: Prepare Workflow Run
runs-on: ubuntu-latest
if: ${{ needs.workflow-requirements.outputs.requirements-met }}
needs:
- workflow-requirements
outputs:
jobs: ${{ steps.define-jobs.outputs.jobs }}
runners: ${{ steps.runner-types.outputs.runners }}
@ -1114,6 +1137,7 @@ jobs:
if: always()
runs-on: ubuntu-latest
needs:
- workflow-requirements
- prepare-workflow
- pre-commit
- lint

View file

@ -1,5 +1,6 @@
# Do not edit these workflows directly as the changes made will be overwritten.
# Instead, edit the template '<{ template }>'
<%- set prepare_workflow_if_check = prepare_workflow_if_check|default(False) %>
<%- set prepare_workflow_skip_test_suite = prepare_workflow_skip_test_suite|default("") %>
<%- set prepare_workflow_skip_pkg_test_suite = prepare_workflow_skip_pkg_test_suite|default("") %>
<%- set prepare_workflow_salt_version_input = prepare_workflow_salt_version_input|default("") %>
@ -63,6 +64,9 @@ jobs:
prepare-workflow:
name: Prepare Workflow Run
runs-on: ubuntu-latest
<%- if prepare_workflow_if_check %>
if: <{ prepare_workflow_if_check }>
<%- endif %>
<%- if prepare_workflow_needs %>
needs:
<%- for need in prepare_workflow_needs.iter(consume=False) %>

View file

@ -1,4 +1,5 @@
<%- set gh_environment = gh_environment|default("nightly") %>
<%- set prepare_workflow_if_check = prepare_workflow_if_check|default("${{ needs.workflow-requirements.outputs.requirements-met }}") %>
<%- extends 'ci.yml.jinja' %>
<%- block on %>
@ -28,6 +29,29 @@ concurrency:
<%- block pre_jobs %>
<%- set job_name = "workflow-requirements" %>
<{ job_name }>:
<%- do prepare_workflow_needs.append(job_name) %>
name: Check Workflow Requirements
runs-on: ubuntu-latest
outputs:
requirements-met: ${{ fromJSON(steps.check-requirements.outputs.requirements-met) }}
steps:
- name: Check Requirements
id: check-requirements
run: |
if [ "${RUN_SCHEDULED_BUILDS}" -eq 1 ]; then
echo "Running workflow because RUN_SCHEDULED_BUILDS=1"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
elif [ "${{ github.event.repository.fork }}" = "true" ]; then
echo "Not running workflow because ${{ github.repository }} is a fork"
echo "requirements-met=false" >> "${GITHUB_OUTPUT}"
else
echo "Running workflow because ${{ github.repository }} is not a fork"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
fi
<%- set job_name = "trigger-branch-nightly-builds" %>
<%- set branches = ["3006.x"] %>
@ -35,7 +59,10 @@ concurrency:
<%- do conclusion_needs.append(job_name) %>
name: Trigger Branch Schedule Workflows
if: ${{ github.event_name == 'schedule' }}
runs-on: ubuntu-latest
runs-on:
- ubuntu-latest
needs:
- workflow-requirements
steps:
<%- for branch in branches %>
- name: Trigger <{ branch }> branch

View file

@ -1,3 +1,4 @@
<%- set prepare_workflow_if_check = "${{ needs.workflow-requirements.outputs.requirements-met }}" %>
<%- extends 'ci.yml.jinja' %>
<%- block on %>
@ -6,6 +7,7 @@ on:
schedule:
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onschedule
- cron: '0 */8 * * *' # Run every 8 hours
<%- endblock %>
<%- block concurrency %>
@ -13,4 +15,33 @@ on:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: false
<%- endblock %>
<%- block pre_jobs %>
<%- set job_name = "workflow-requirements" %>
<{ job_name }>:
<%- do prepare_workflow_needs.append(job_name) %>
name: Check Workflow Requirements
runs-on: ubuntu-latest
outputs:
requirements-met: ${{ fromJSON(steps.check-requirements.outputs.requirements-met) }}
steps:
- name: Check Requirements
id: check-requirements
run: |
if [ "${RUN_SCHEDULED_BUILDS}" -eq 1 ]; then
echo "Running workflow because RUN_SCHEDULED_BUILDS=1"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
elif [ "${{ github.event.repository.fork }}" = "true" ]; then
echo "Not running workflow because ${{ github.repository }} is a fork"
echo "requirements-met=false" >> "${GITHUB_OUTPUT}"
else
echo "Running workflow because ${{ github.repository }} is not a fork"
echo "requirements-met=true" >> "${GITHUB_OUTPUT}"
fi
<%- endblock pre_jobs %>

View file

@ -1,3 +1,4 @@
<%- set prepare_workflow_if_check = False %>
<%- set prepare_workflow_salt_version_input = "${{ inputs.salt-version }}" %>
<%- set prepare_workflow_skip_test_suite = "${{ inputs.skip-salt-test-suite && ' --skip-tests' || '' }}" %>
<%- set prepare_workflow_skip_pkg_test_suite = "${{ inputs.skip-salt-pkg-test-suite && ' --skip-pkg-tests' || '' }}" %>