From 4bcdb4c66c992697eb445795d42fbcd465dcee64 Mon Sep 17 00:00:00 2001 From: James Sandford Date: Tue, 14 Nov 2023 11:54:52 +0000 Subject: [PATCH] Add GHA workflows --- .github/workflows/ci-workflow.yml | 53 ++++++++++++++++++++++++++ .github/workflows/release-workflow.yml | 42 ++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 .github/workflows/ci-workflow.yml create mode 100644 .github/workflows/release-workflow.yml diff --git a/.github/workflows/ci-workflow.yml b/.github/workflows/ci-workflow.yml new file mode 100644 index 0000000..9de2246 --- /dev/null +++ b/.github/workflows/ci-workflow.yml @@ -0,0 +1,53 @@ +name: CI Workflow +run-name: ${{ format('{0} triggered by {1} on {2} {3}', github.workflow, (github.event_name == 'workflow_dispatch' && format('user {0}', github.actor) || format('{0} event', github.event_name) ), github.repository, github.ref_name) }} +on: + schedule: + - cron: '0 4 * * 1-5' + + # Pull requests and pushes will not trigger a run if the only changes are on workflows other than this one + pull_request: + paths-ignore: + - '.github/workflows/**' + - '!.github/workflows/ci-workflow.yml' + + push: + paths-ignore: + - '.github/workflows/**' + - '!.github/workflows/ci-workflow.yml' + branches: + - 'main' + + workflow_dispatch: + # NOTE: Defaults here are only for the dispatch run dialogue box. See the shared workflow calls below for defaults for runs triggered by other means + inputs: + forceDocsUpload: + description: 'Force docs upload' + required: false + type: boolean + pythonVersion: + description: 'Python version to use' + required: true + default: '3.10' + type: string + commontoolingBranch: + description: 'Commontooling branch or tag to use' + required: true + default: 'main' + type: string + +jobs: + SharedCIWorkflow: + name: Shared Workflow + permissions: + actions: read + contents: read + pages: write + id-token: write + uses: ./.github/workflows/shared-ext-ci-workflow.yml + with: + # workflow_dispatch inputs are always strings. Convert to boolean. + forceDocsUpload: ${{ inputs.forceDocsUpload == true }} + pythonVersion: ${{ inputs.pythonVersion || '3.10' }} + commontoolingBranch: ${{ inputs.commontoolingBranch || 'main' }} + enableArtifactoryPip: true + secrets: inherit diff --git a/.github/workflows/release-workflow.yml b/.github/workflows/release-workflow.yml new file mode 100644 index 0000000..f6d394a --- /dev/null +++ b/.github/workflows/release-workflow.yml @@ -0,0 +1,42 @@ +name: Release Workflow +run-name: ${{ format('{0} triggered by {1} on {2} {3}', github.workflow, (github.event_name == 'workflow_dispatch' && format('user {0}', github.actor) || format('{0} event', github.event_name) ), github.repository, github.ref_name) }} +on: + workflow_dispatch: + # Defaults here are only for the dispatch run dialogue box. See the shared workflow calls below for defaults for runs triggered by other means + inputs: + commontoolingBranch: + description: 'Commontooling branch or tag to use' + required: true + default: 'main' + type: string + pythonVersion: + description: 'Python version to use' + required: true + default: '3.10' + type: string + +jobs: + SharedReleaseWorkflow: + name: Release + permissions: + contents: write + uses: ./.github/workflows/shared-ext-release-workflow.yml + with: + commontoolingBranch: ${{ inputs.commontoolingBranch || 'main' }} + secrets: inherit + + SharedCIWorkflow: + name: CI + permissions: + actions: read + contents: read + pages: write + id-token: write + needs: SharedReleaseWorkflow + uses: ./.github/workflows/shared-ext-ci-workflow.yml + with: + commontoolingBranch: ${{ inputs.commontoolingBranch || 'main' }} + pythonVersion: ${{ inputs.pythonVersion || '3.10' }} + enableArtifactoryPip: true + checkoutRef: ${{ needs.SharedReleaseWorkflow.outputs.releaseRef }} + secrets: inherit