| # --------------------------------------------------------------------------- |
| # 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. |
| # --------------------------------------------------------------------------- |
| |
| name: YAKS Tests |
| |
| on: |
| pull_request: |
| branches: |
| - main |
| paths-ignore: |
| - '**.adoc' |
| - 'KEYS' |
| - 'LICENSE' |
| - 'NOTICE' |
| push: |
| branches: |
| - main |
| paths-ignore: |
| - '**.adoc' |
| - 'KEYS' |
| - 'LICENSE' |
| - 'NOTICE' |
| workflow_dispatch: |
| |
| concurrency: |
| group: ${{ github.ref }}-${{ github.workflow }} |
| cancel-in-progress: true |
| |
| env: |
| CAMEL_K_VERSION: 1.8.2 |
| YAKS_VERSION: 0.9.0-202203140033 |
| YAKS_IMAGE_NAME: "docker.io/yaks/yaks" |
| YAKS_RUN_OPTIONS: "--timeout=15m" |
| |
| jobs: |
| test: |
| |
| runs-on: ubuntu-latest |
| |
| steps: |
| - name: Checkout code |
| uses: actions/checkout@v2 |
| - name: Set JitPack coordinates for pull requests |
| if: github.event_name == 'pull_request' |
| env: |
| BASE_REF: ${{ github.base_ref }} |
| HEAD_REF: ${{ github.head_ref }} |
| HEAD_REPO: ${{ github.event.pull_request.head.repo.full_name }} |
| run: | |
| echo "Set JitPack dependency coordinates to ${HEAD_REPO/\//.}:camel-kamelets-utils:${HEAD_REF/\//'~'}-SNAPSHOT" |
| |
| # Overwrite JitPack coordinates in the local Kamelets so the tests can use the utility classes in this PR |
| find kamelets -maxdepth 1 -name '*.kamelet.yaml' -exec sed -i "s/github:apache.camel-kamelets:camel-kamelets-utils:${BASE_REF}-SNAPSHOT/github:${HEAD_REPO/\//.}:camel-kamelets-utils:${HEAD_REF/\//'~'}-SNAPSHOT/g" {} + |
| - name: Get Camel K CLI |
| run: | |
| curl --fail -L --silent https://github.com/apache/camel-k/releases/download/v${CAMEL_K_VERSION}/camel-k-client-${CAMEL_K_VERSION}-linux-64bit.tar.gz -o kamel.tar.gz |
| mkdir -p _kamel |
| tar -zxf kamel.tar.gz --directory ./_kamel |
| sudo mv ./_kamel/kamel /usr/local/bin/ |
| rm kamel.tar.gz |
| rm -r _kamel |
| - name: Get YAKS CLI |
| run: | |
| curl --fail -L --silent https://github.com/citrusframework/yaks/releases/download/${YAKS_VERSION}/yaks-${YAKS_VERSION}-linux-64bit.tar.gz -o yaks.tar.gz |
| mkdir -p _yaks |
| tar -zxf yaks.tar.gz --directory ./_yaks |
| sudo mv ./_yaks/yaks /usr/local/bin/ |
| rm yaks.tar.gz |
| rm -r _yaks |
| - name: Kubernetes KinD Cluster |
| uses: container-tools/kind-action@v1 |
| - name: Info |
| run: | |
| kubectl version |
| kubectl cluster-info |
| kubectl describe nodes |
| - name: Install Camel K |
| run: | |
| # Configure install options |
| export KAMEL_INSTALL_BUILD_PUBLISH_STRATEGY=Spectrum |
| export KAMEL_INSTALL_REGISTRY=$KIND_REGISTRY |
| export KAMEL_INSTALL_REGISTRY_INSECURE=true |
| |
| kamel install -w |
| |
| # TODO replaces the below statement with --operator-env-vars KAMEL_INSTALL_DEFAULT_KAMELETS=false |
| # when we use camel k 1.8.0 |
| kubectl delete kamelets --all |
| |
| # Install the local kamelets |
| find kamelets -maxdepth 1 -name '*.kamelet.yaml' -exec kubectl apply -f {} \; |
| - name: Install YAKS |
| run: | |
| yaks install --operator-image $YAKS_IMAGE_NAME:$YAKS_VERSION |
| - name: YAKS Tests |
| run: | |
| echo "Running tests" |
| yaks run test/aws-ddb-sink $YAKS_RUN_OPTIONS |
| yaks run test/extract-field-action $YAKS_RUN_OPTIONS |
| yaks run test/insert-field-action $YAKS_RUN_OPTIONS |
| yaks run test/mail-sink $YAKS_RUN_OPTIONS |
| yaks run test/timer-source $YAKS_RUN_OPTIONS |
| yaks run test/earthquake-source $YAKS_RUN_OPTIONS |
| yaks run test/rest-openapi-sink $YAKS_RUN_OPTIONS |
| yaks run test/kafka $YAKS_RUN_OPTIONS |
| - name: YAKS Report |
| if: failure() |
| run: | |
| yaks report |
| - uses: actions/upload-artifact@v2 |
| if: failure() |
| with: |
| name: dumps |
| path: _output/*-dump.log |