Skip to content

Nightly OLM test

Nightly OLM test #134

--- # ---------------------------------------------------------------------------
# ---------------------------------------------------------------------------
# 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.
# ---------------------------------------------------------------------------
# TODO: follow up the evolution of https://github.com/operator-framework/operator-sdk/issues/6699
# and move into a normal test once it is possible for the operator-sdk to test local bundles
name: Nightly OLM test
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
on:
schedule:
- cron: "15 1 * * *"
workflow_dispatch:
jobs:
install:
strategy:
fail-fast: false
matrix:
ref-branch: [main, release-2.5.x]
if: github.repository == 'apache/camel-k'
runs-on: ubuntu-latest
steps:
- name: "Checkout code"
uses: actions/checkout@v4
with:
ref: ${{ matrix.ref-branch }}
persist-credentials: false
submodules: recursive
- name: Infra setting
uses: ./.github/actions/infra-setting
- name: Install OLM
shell: bash
run: |
kubectl create -f https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.28.0/crds.yaml
kubectl create -f https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.28.0/olm.yaml
kubectl wait --for=jsonpath='{.status.phase}'=Succeeded csv packageserver -n olm --timeout=5m
# Building and pushing a bundle to a running container is required due to how
# Operator-SDK works. Once it allows for local bundle testing, this part may be omitted
- name: Login to staging container registry
uses: docker/login-action@v3
with:
username: ${{ secrets.TEST_DOCKER_HUB_USERNAME }}
password: ${{ secrets.TEST_DOCKER_HUB_PASSWORD }}
- name: Build and push OLM bundle
shell: bash
run: |
echo "BUNDLE_IMAGE_NAME=docker.io/testcamelk/camel-k-bundle" >> $GITHUB_ENV
echo "Setting bundle image name as as $BUNDLE_IMAGE_NAME which is required by OLM tests"
BUNDLE_IMAGE_NAME=docker.io/testcamelk/camel-k-bundle make bundle-push
- name: Run tests
shell: bash
run: |
DO_TEST_PREBUILD=false GOTESTFMT="-json 2>&1 | gotestfmt" make test-install-olm