support scheduler plugins #894
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Helm | |
on: | |
push: | |
branches: | |
- master | |
- release-* | |
pull_request: | |
branches: | |
- master | |
- release-* | |
env: | |
CHART_DIR: helm-chart | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.actor }} | |
cancel-in-progress: true | |
jobs: | |
lint-test: | |
name: Lint and Test | |
runs-on: ubuntu-24.04 | |
strategy: | |
matrix: | |
chart: | |
- kuberay-operator | |
- kuberay-apiserver | |
- ray-cluster | |
steps: | |
- name: Determine branch name | |
id: get_branch | |
run: | | |
BRANCH="" | |
if [ "${{ github.event_name }}" == "push" ]; then | |
BRANCH=${{ github.ref_name }} | |
elif [ "${{ github.event_name }}" == "pull_request" ]; then | |
BRANCH=${{ github.base_ref }} | |
fi | |
echo "BRANCH=$BRANCH" >> "$GITHUB_OUTPUT" | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Helm | |
uses: azure/[email protected] | |
with: | |
version: v3.17.3 | |
- uses: actions/[email protected] | |
with: | |
python-version: 3.13 | |
- name: Install Helm unittest plugin | |
run: helm plugin install https://github.com/helm-unittest/helm-unittest.git --version 0.8.1 | |
- name: Run Helm unittest | |
run: helm unittest ${{ env.CHART_DIR }}/${{ matrix.chart }} --file "tests/**/*_test.yaml" --strict --debug | |
- name: Set up chart-testing | |
uses: helm/[email protected] | |
- name: Run chart-testing (list-changed) | |
id: list-changed | |
env: | |
BRANCH: ${{ steps.get_branch.outputs.BRANCH }} | |
run: | | |
changed=$(ct list-changed --target-branch $BRANCH --chart-dirs ${{ env.CHART_DIR }} | grep ${{ matrix.chart }} || true) | |
if [[ -n "$changed" ]]; then | |
echo "changed=true" >> "$GITHUB_OUTPUT" | |
fi | |
- name: Run chart-testing (lint) | |
if: steps.list-changed.outputs.changed == 'true' | |
env: | |
BRANCH: ${{ steps.get_branch.outputs.BRANCH }} | |
run: | | |
# Run 'helm lint', version checking, YAML schema validation on 'Chart.yaml', | |
# YAML linting on 'Chart.yaml' and 'values.yaml', and maintainer. | |
# [Doc]: https://github.com/helm/chart-testing/blob/main/doc/ct_lint.md | |
ct lint --charts ${{ env.CHART_DIR }}/${{ matrix.chart }} --validate-maintainers=false | |
- name: Create kind cluster | |
if: steps.list-changed.outputs.changed == 'true' | |
uses: helm/[email protected] | |
with: | |
cluster_name: kind | |
- name: Build Docker image (kuberay-operator) | |
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'kuberay-operator' | |
run: | | |
cd ray-operator && make docker-image -e IMG=kuberay/operator:local | |
- name: Build Docker image (kuberay-apiserver) | |
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'kuberay-apiserver' | |
run: | | |
cd apiserver && make docker-image -e IMG=kuberay/apiserver:local | |
- name: Build Docker image (security-proxy) | |
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'kuberay-apiserver' | |
run: | | |
cd experimental && make docker-image -e IMG=kuberay/security-proxy:local | |
- name: Load image to kind cluster (kuberay-operator) | |
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'kuberay-operator' | |
run: | | |
kind load docker-image kuberay/operator:local | |
- name: Load image to kind cluster (kuberay-apiserver) | |
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'kuberay-apiserver' | |
run: | | |
kind load docker-image kuberay/apiserver:local | |
- name: Load image to kind cluster (security-proxy) | |
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'kuberay-apiserver' | |
run: | | |
kind load docker-image kuberay/security-proxy:local | |
- name: Install Custom Resource Definitions to kind cluster | |
if: steps.list-changed.outputs.changed == 'true' && matrix.chart == 'ray-cluster' | |
working-directory: helm-chart/kuberay-operator | |
run: kubectl create -f crds | |
- name: Run chart-testing | |
if: steps.list-changed.outputs.changed == 'true' | |
env: | |
BRANCH: ${{ steps.get_branch.outputs.BRANCH }} | |
run: | | |
# Run 'helm install', 'helm test', and optionally 'helm upgrade' on specified charts. | |
# [Doc]: https://github.com/helm/chart-testing/blob/main/doc/ct_install.md | |
ct install --charts ${{ env.CHART_DIR}}/${{ matrix.chart }} |