Skip to content

Commit

Permalink
split nightly tests
Browse files Browse the repository at this point in the history
  • Loading branch information
joejulian committed May 30, 2023
1 parent 2c2fdac commit dccd013
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 94 deletions.
94 changes: 0 additions & 94 deletions .github/workflows/nightly.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -127,98 +127,4 @@ jobs:
--config .github/ct.yaml \
--helm-extra-set-args="--set=image.tag=${{ matrix.version }}" \
--skip-missing-values \
--charts=charts/redpanda
test-redpanda-nightly:
name: Run ct tests for ci values matching ${{ matrix.testvaluespattern }} for Redpanda nightly build
strategy:
matrix:
testvaluespattern:
- '0[1-3]*'
- '0[4-6]*'
- '0[7-9]*'
- '1[0-2]*'
fail-fast: true
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- run: |
git checkout main
git checkout -
- name: Set up for matrix
run: |
echo bash -O extglob -c "rm -v charts/redpanda/ci/!(${{ matrix.testvaluespattern }})"
bash -O extglob -c "rm -v charts/redpanda/ci/!(${{ matrix.testvaluespattern }})"
- uses: actions/setup-go@v4
with:
go-version: '>=1.20.4'
- run: go install github.com/joejulian/docker-tag-list@latest

- name: Get latest nightly tag
id: latestTag
run: |
echo "TAG=$(
docker-tag-list -c '~0.0.0-0' --latest -r redpandadata/redpanda-nightly | sed 's/-a..64$//'
) >> $GITHUB_OUTPUT
- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: v3.11.1

- name: Set up chart-testing
uses: joejulian/chart-testing-action@v2.3.1-1
with:
version: v3.8.0-1

- name: Create kind cluster
uses: helm/kind-action@v1.5.0
with:
config: .github/kind.yaml

- name: Check kind config worked
run: kubectl get nodes

- name: Annotate nodes for rack awareness
run: .github/annotate_kind_nodes.sh chart-testing

#===== Required Test Files === start

- name: Create tls helm templates
if: steps.list-changed.outputs.changed == 'true'
run: |
.github/create_tls.sh "random-domain"
- name: Create sasl secret templates
if: steps.list-changed.outputs.changed == 'true'
run: |
.github/create-sasl-secret.sh "some-users"
- name: Move tls files to template
if: steps.list-changed.outputs.changed == 'true'
run: |
mv external-tls-secret.yaml charts/redpanda/templates/
cp .github/external-service.yaml charts/redpanda/templates/
mv some-users-updated.yaml charts/redpanda/templates
#===== Required Test Files === end

- name: install cert-manager
run: |
helm repo add jetstack https://charts.jetstack.io &&
helm install cert-manager --namespace cert-manager \
--create-namespace --version v1.11.0 jetstack/cert-manager \
--set installCRDs=true --wait --wait-for-jobs
- name: Run chart-testing install
run: |
ct install \
--config .github/ct.yaml \
--helm-extra-set-args="--set=image.tag=${{ steps.latestTag.outputs.TAG }} --set=image.repository=redpandadata/redpanda-nightly" \
--skip-missing-values \
--charts=charts/redpanda
116 changes: 116 additions & 0 deletions .github/workflows/nighty_redpanda_tip.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# 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 is to test only the Redpanda Chart Nightly
name: Nightly Lint and Test Redpanda Chart

on:
schedule:
- cron: '0 1 * * 1-5' # 01:00 AM UTC Monday - Friday
workflow_dispatch: {}
jobs:
test-redpanda-nightly:
name: Run ct tests for ci values matching ${{ matrix.testvaluespattern }} for Redpanda nightly build
strategy:
matrix:
testvaluespattern:
- '0[1-3]*'
- '0[4-6]*'
- '0[7-9]*'
- '1[0-2]*'
fail-fast: true
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- run: |
git checkout main
git checkout -
- name: Set up for matrix
run: |
echo bash -O extglob -c "rm -v charts/redpanda/ci/!(${{ matrix.testvaluespattern }})"
bash -O extglob -c "rm -v charts/redpanda/ci/!(${{ matrix.testvaluespattern }})"
- uses: actions/setup-go@v4
with:
go-version: '>=1.20.4'
- run: go install github.com/joejulian/docker-tag-list@latest

- name: Get latest nightly tag
id: latestTag
run: |
echo "TAG=$(
docker-tag-list -c '~0.0.0-0' --latest -r redpandadata/redpanda-nightly | sed 's/-a..64$//'
)" >> $GITHUB_OUTPUT
- name: Set up Helm
uses: azure/setup-helm@v3
with:
version: v3.11.1

- name: Set up chart-testing
uses: joejulian/chart-testing-action@v2.3.1-1
with:
version: v3.8.0-1

- name: Create kind cluster
uses: helm/kind-action@v1.5.0
with:
config: .github/kind.yaml

- name: Check kind config worked
run: kubectl get nodes

- name: Annotate nodes for rack awareness
run: .github/annotate_kind_nodes.sh chart-testing

#===== Required Test Files === start

- name: Create tls helm templates
if: steps.list-changed.outputs.changed == 'true'
run: |
.github/create_tls.sh "random-domain"
- name: Create sasl secret templates
if: steps.list-changed.outputs.changed == 'true'
run: |
.github/create-sasl-secret.sh "some-users"
- name: Move tls files to template
if: steps.list-changed.outputs.changed == 'true'
run: |
mv external-tls-secret.yaml charts/redpanda/templates/
cp .github/external-service.yaml charts/redpanda/templates/
mv some-users-updated.yaml charts/redpanda/templates
#===== Required Test Files === end

- name: install cert-manager
run: |
helm repo add jetstack https://charts.jetstack.io &&
helm install cert-manager --namespace cert-manager \
--create-namespace --version v1.11.0 jetstack/cert-manager \
--set installCRDs=true --wait --wait-for-jobs
- name: Run chart-testing install
run: |
ct install \
--config .github/ct.yaml \
--helm-extra-set-args="--set=image.tag=${{ steps.latestTag.outputs.TAG }} --set=image.repository=redpandadata/redpanda-nightly" \
--skip-missing-values \
--charts=charts/redpanda

0 comments on commit dccd013

Please sign in to comment.