Skip to content

Flink CI (extended) #105

Flink CI (extended)

Flink CI (extended) #105

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# This workflow is meant as an extended CI run that includes certain features that shall be tested
# and JDK versions that are supported but not considered default.
name: "Flink CI (extended)"
on:
schedule:
- cron: '0 2,8,14,20 * * *'
workflow_call:
inputs:
branch:
description: "The branch the extended CI run should be executed on."
type: string
required: true
secrets:
s3_bucket:
required: false
s3_access_key:
required: false
s3_secret_key:
required: false
workflow_dispatch:
inputs:
branch:
description: "The branch the extended workflow should run on."
default: "master"
type: string
permissions: read-all
jobs:
basic-qa:
name: "Pre-compile Checks"
uses: ./.github/workflows/pre-compile-checks.yml
with:
branch: ${{ inputs.branch }}
workflow-config-selection:
name: "Selects CI workflow configurations"
runs-on: "ubuntu-latest"
outputs:
configs: ${{ steps.select-workflow-configs.outputs.configs }}
steps:
- name: "Flink Checkout"
uses: actions/checkout@v3
with:
persist-credentials: false
- name: "Selects workflow configurations"
id: select-workflow-configs
shell: bash
run: |
placeholder="%%CONFIG_PROFILE%%"
path_pattern="./.github/workflows/flink-workflow-config.$placeholder.json"
config_file_path=$(echo "$path_pattern" | sed "s/$placeholder/${{ inputs.branch }}/g")
if [ ! -f $config_file_path ]; then
# use fallback configuration if no branch specific configuration is present
config_file_path=$(echo "$path_pattern" | sed "s/$placeholder/default/g")
fi
echo "configs=$(cat ${config_file_path} | paste -sd' ')" >> $GITHUB_OUTPUT
flink-workflow:
needs: workflow-config-selection
strategy:
matrix: ${{ fromJSON(needs.workflow-config-selection.outputs.configs) }}
# a failure in one of the JDK workflows shouldn't affect the other workflows
fail-fast: false
name: "${{ matrix.calling-workflow-name }}"
uses: ./.github/workflows/flink-ci-template.yml
with:
workflow-caller-id: ${{ matrix.calling-workflow-id }}
branch: ${{ inputs.branch }}
environment: 'PROFILE="${{ matrix.env-params }}"'
jdk-version: ${{ matrix.jdk-version }}
secrets:
s3_bucket: ${{ secrets.s3_bucket }}
s3_access_key: ${{ secrets.s3_access_key }}
s3_secret_key: ${{ secrets.s3_secret_key }}