Skip to content

chore: add stream_route test for standalone (#2565) #495

chore: add stream_route test for standalone (#2565)

chore: add stream_route test for standalone (#2565) #495

# 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: APISIX Conformance Test
on:
push:
branches:
- master
pull_request:
branches:
- master
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
pull-requests: write
jobs:
conformance-test:
env:
CONFORMANCE_TEST_REPORT_OUTPUT: /tmp/apisix-ingress-controller-conformance-report.yaml
timeout-minutes: 60
strategy:
matrix:
provider_type:
- apisix-standalone
- apisix
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Go Env
uses: actions/setup-go@v4
with:
go-version: "1.24"
- name: Install kind
run: |
go install sigs.k8s.io/[email protected]
- name: Login to Registry
uses: docker/login-action@v3
with:
registry: ${{ secrets.DOCKER_REGISTRY }}
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Install kind
run: |
go install sigs.k8s.io/[email protected]
- name: Build images
env:
TAG: dev
ARCH: amd64
ENABLE_PROXY: "false"
BASE_IMAGE_TAG: "debug"
# ADC_VERSION: "dev"
run: |
echo "building images..."
make build-image
- name: Launch Kind Cluster
run: |
make kind-up
- name: Install And Run Cloud Provider KIND
run: |
go install sigs.k8s.io/cloud-provider-kind@latest
nohup cloud-provider-kind > /tmp/kind-loadbalancer.log 2>&1 &
- name: Install Gateway API And CRDs
run: |
make install
- name: Loading Docker Image to Kind Cluster
run: |
make kind-load-adc-image
make kind-load-ingress-image
- name: Run Conformance Test
shell: bash
continue-on-error: true
env:
PROVIDER_TYPE: ${{ matrix.provider_type }}
run: |
make conformance-test
- name: Show Conformance Report
shell: bash
run: |
cat ${CONFORMANCE_TEST_REPORT_OUTPUT}
- name: Get Logs from apisix-ingress-controller
shell: bash
run: |
export KUBECONFIG=/tmp/apisix-ingress-cluster.kubeconfig
kubectl logs -n apisix-conformance-test -l app=apisix-ingress-controller
- name: Upload Gateway API Conformance Report
uses: actions/upload-artifact@v4
with:
name: apisix-ingress-controller-conformance-report-${{ matrix.provider_type }}.yaml
path: ${{ env.CONFORMANCE_TEST_REPORT_OUTPUT }}
- name: Format Conformance Test Report
if: ${{ github.event_name == 'pull_request' }}
run: |
echo '# conformance test report - ${{ matrix.provider_type }} mode' > report.md
echo '```yaml' >> report.md
cat ${CONFORMANCE_TEST_REPORT_OUTPUT} >> report.md
echo '```' >> report.md
- name: Report Conformance Test Result to PR Comment
if: ${{ github.event_name == 'pull_request' }}
uses: ./.github/actions/add-pr-comment
with:
message-id: 'apisix-conformance-test-report-${{ matrix.provider_type }}'
message-path: |
report.md