Skip to content

[Backport release/3.3.x] chore(patches): apply the LuaJIT ARM64 LDP/STP fusion fix from LuaJIT #27607

[Backport release/3.3.x] chore(patches): apply the LuaJIT ARM64 LDP/STP fusion fix from LuaJIT

[Backport release/3.3.x] chore(patches): apply the LuaJIT ARM64 LDP/STP fusion fix from LuaJIT #27607

Workflow file for this run

name: Build & Test
on:
pull_request:
paths-ignore:
# ignore markdown files (CHANGELOG.md, README.md, etc.)
- '**/*.md'
- '.github/workflows/release.yml'
push:
paths-ignore:
# ignore markdown files (CHANGELOG.md, README.md, etc.)
- '**/*.md'
# ignore PRs for the generated COPYRIGHT file
- 'COPYRIGHT'
branches:
- master
- release/*
- test-please/*
# cancel previous runs if new commits are pushed to the PR, but run for each commit on master
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
BUILD_ROOT: ${{ github.workspace }}/bazel-bin/build
jobs:
build:
uses: ./.github/workflows/build.yml
with:
build-root-suffix: /bazel-bin/build
lint-doc-and-unit-tests:
name: Lint, Doc and Unit tests
runs-on: ubuntu-22.04
needs: build
services:
postgres:
image: postgres:13
env:
POSTGRES_USER: kong
POSTGRES_DB: kong
POSTGRES_HOST_AUTH_METHOD: trust
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 5s --health-timeout 5s --health-retries 8
steps:
- name: Checkout Kong source code
uses: actions/checkout@v3
- name: Lookup build cache
id: cache-deps
uses: actions/cache@v3
with:
path: |
${{ env.BUILD_ROOT }}
key: ${{ hashFiles('.requirements', 'kong-*.rockspec', '.bazelversion', '.bazelrc', 'build/**', 'BUILD.bazel', 'WORKSPACE', '.github/workflows/build_and_test.yml') }}
- name: Check test-helpers doc generation
run: |
source ${{ env.BUILD_ROOT }}/kong-dev-venv.sh
pushd ./spec && ldoc .
- name: Check autodoc generation
run: |
source ${{ env.BUILD_ROOT }}/kong-dev-venv.sh
scripts/autodoc
- name: Check Admin API definition generation
run: |
source ${{ env.BUILD_ROOT }}/kong-dev-venv.sh
scripts/gen-admin-api-def.sh
- name: Lint Lua code
run: |
make lint
- name: Validate rockspec file
run: |
source ${{ env.BUILD_ROOT }}/kong-dev-venv.sh
scripts/validate-rockspec
- name: Check spec file misspelling
run: |
scripts/check_spec_files_spelling.sh
- name: Check labeler configuration
run: scripts/check-labeler.pl .github/labeler.yml
- name: Unit tests
env:
KONG_TEST_PG_DATABASE: kong
KONG_TEST_PG_USER: kong
run: |
source ${{ env.BUILD_ROOT }}/kong-dev-venv.sh
bin/busted -v -o htest spec/01-unit
integration-tests-postgres:
name: Postgres ${{ matrix.suite }} - ${{ matrix.split }} tests
runs-on: ubuntu-22.04
needs: build
strategy:
fail-fast: false
matrix:
suite: [integration, plugins]
split: [first (01-04), second (>= 05)]
services:
postgres:
image: postgres:13
env:
POSTGRES_USER: kong
POSTGRES_DB: kong
POSTGRES_HOST_AUTH_METHOD: trust
ports:
- 5432:5432
options: --health-cmd pg_isready --health-interval 5s --health-timeout 5s --health-retries 8
grpcbin:
image: kong/grpcbin
ports:
- 15002:9000
- 15003:9001
redis:
image: redis
ports:
- 6379:6379
- 6380:6380
options: >-
--name kong_redis
zipkin:
image: openzipkin/zipkin:2.19
ports:
- 9411:9411
steps:
- name: Checkout Kong source code
uses: actions/checkout@v3
- name: Lookup build cache
id: cache-deps
uses: actions/cache@v3
with:
path: |
${{ env.BUILD_ROOT }}
key: ${{ hashFiles('.requirements', 'kong-*.rockspec', '.bazelversion', '.bazelrc', 'build/**', 'BUILD.bazel', 'WORKSPACE', '.github/workflows/build_and_test.yml') }}
- name: Add gRPC test host names
run: |
echo "127.0.0.1 grpcs_1.test" | sudo tee -a /etc/hosts
echo "127.0.0.1 grpcs_2.test" | sudo tee -a /etc/hosts
- name: Enable SSL for Redis
if: ${{ matrix.suite == 'plugins' }}
run: |
docker cp ${{ github.workspace }} kong_redis:/workspace
docker cp ${{ github.workspace }}/spec/fixtures/redis/docker-entrypoint.sh kong_redis:/usr/local/bin/docker-entrypoint.sh
docker restart kong_redis
docker logs kong_redis
- name: Run OpenTelemetry Collector
if: ${{ matrix.suite == 'plugins' }}
run: |
mkdir -p ${{ github.workspace }}/tmp/otel
touch ${{ github.workspace }}/tmp/otel/file_exporter.json
sudo chmod 777 -R ${{ github.workspace }}/tmp/otel
docker run -p 4317:4317 -p 4318:4318 -p 55679:55679 \
-v ${{ github.workspace }}/spec/fixtures/opentelemetry/otelcol.yaml:/etc/otel-collector-config.yaml \
-v ${{ github.workspace }}/tmp/otel:/etc/otel \
--name opentelemetry-collector -d \
otel/opentelemetry-collector-contrib:0.52.0 \
--config=/etc/otel-collector-config.yaml
sleep 2
docker logs opentelemetry-collector
- name: Install AWS SAM cli tool
if: ${{ matrix.suite == 'plugins' }}
run: |
curl -L -s -o /tmp/aws-sam-cli.zip https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip
unzip -o /tmp/aws-sam-cli.zip -d /tmp/aws-sam-cli
sudo /tmp/aws-sam-cli/install --update
- name: Tests
env:
KONG_TEST_PG_DATABASE: kong
KONG_TEST_PG_USER: kong
KONG_TEST_DATABASE: postgres
KONG_SPEC_TEST_GRPCBIN_PORT: "15002"
KONG_SPEC_TEST_GRPCBIN_SSL_PORT: "15003"
KONG_SPEC_TEST_OTELCOL_FILE_EXPORTER_PATH: ${{ github.workspace }}/tmp/otel/file_exporter.json
TEST_SUITE: ${{ matrix.suite }}
TEST_SPLIT: ${{ matrix.split }}
run: |
make dev # required to install other dependencies like bin/grpcurl
source ${{ env.BUILD_ROOT }}/kong-dev-venv.sh
.ci/run_tests.sh
integration-tests-dbless:
name: DB-less integration tests
runs-on: ubuntu-22.04
needs: build
services:
grpcbin:
image: moul/grpcbin
ports:
- 15002:9000
- 15003:9001
steps:
- name: Checkout Kong source code
uses: actions/checkout@v3
- name: Lookup build cache
id: cache-deps
uses: actions/cache@v3
with:
path: |
${{ env.BUILD_ROOT }}
key: ${{ hashFiles('.requirements', 'kong-*.rockspec', '.bazelversion', '.bazelrc', 'build/**', 'BUILD.bazel', 'WORKSPACE', '.github/workflows/build_and_test.yml') }}
- name: Add gRPC test host names
run: |
echo "127.0.0.1 grpcs_1.test" | sudo tee -a /etc/hosts
echo "127.0.0.1 grpcs_2.test" | sudo tee -a /etc/hosts
- name: Run OpenTelemetry Collector
run: |
mkdir -p ${{ github.workspace }}/tmp/otel
touch ${{ github.workspace }}/tmp/otel/file_exporter.json
sudo chmod 777 -R ${{ github.workspace }}/tmp/otel
docker run -p 4317:4317 -p 4318:4318 -p 55679:55679 \
-v ${{ github.workspace }}/spec/fixtures/opentelemetry/otelcol.yaml:/etc/otel-collector-config.yaml \
-v ${{ github.workspace }}/tmp/otel:/etc/otel \
--name opentelemetry-collector -d \
otel/opentelemetry-collector-contrib:0.52.0 \
--config=/etc/otel-collector-config.yaml
sleep 2
docker logs opentelemetry-collector
- name: Tests
env:
KONG_TEST_PG_DATABASE: kong
KONG_TEST_PG_USER: kong
KONG_TEST_DATABASE: 'off'
KONG_SPEC_TEST_GRPCBIN_PORT: "15002"
KONG_SPEC_TEST_GRPCBIN_SSL_PORT: "15003"
KONG_SPEC_TEST_OTELCOL_FILE_EXPORTER_PATH: ${{ github.workspace }}/tmp/otel/file_exporter.json
TEST_SUITE: dbless
run: |
make dev # required to install other dependencies like bin/grpcurl
source ${{ env.BUILD_ROOT }}/kong-dev-venv.sh
.ci/run_tests.sh
integration-tests-cassandra:
name: C* ${{ matrix.cassandra_version }} ${{ matrix.suite }} - ${{ matrix.split }} tests
runs-on: ubuntu-22.04
needs: build
strategy:
fail-fast: false
matrix:
suite: [integration, plugins]
cassandra_version: [3]
split: [first (01-04), second (>= 05)]
services:
cassandra:
image: cassandra:${{ matrix.cassandra_version }}
ports:
- 7199:7199
- 7000:7000
- 9160:9160
- 9042:9042
options: --health-cmd "cqlsh -e 'describe cluster'" --health-interval 5s --health-timeout 5s --health-retries 8
grpcbin:
image: moul/grpcbin
ports:
- 15002:9000
- 15003:9001
redis:
image: redis
ports:
- 6379:6379
- 6380:6380
options: >-
--name kong_redis
zipkin:
image: openzipkin/zipkin:2.19
ports:
- 9411:9411
steps:
- name: Checkout Kong source code
uses: actions/checkout@v3
- name: Lookup build cache
id: cache-deps
uses: actions/cache@v3
with:
path: |
${{ env.BUILD_ROOT }}
key: ${{ hashFiles('.requirements', 'kong-*.rockspec', '.bazelversion', '.bazelrc', 'build/**', 'BUILD.bazel', 'WORKSPACE', '.github/workflows/build_and_test.yml') }}
- name: Add gRPC test host names
run: |
echo "127.0.0.1 grpcs_1.test" | sudo tee -a /etc/hosts
echo "127.0.0.1 grpcs_2.test" | sudo tee -a /etc/hosts
- name: Enable SSL for Redis
if: ${{ matrix.suite == 'plugins' }}
run: |
docker cp ${{ github.workspace }} kong_redis:/workspace
docker cp ${{ github.workspace }}/spec/fixtures/redis/docker-entrypoint.sh kong_redis:/usr/local/bin/docker-entrypoint.sh
docker restart kong_redis
docker logs kong_redis
- name: Run OpenTelemetry Collector
if: ${{ matrix.suite == 'plugins' }}
run: |
mkdir -p ${{ github.workspace }}/tmp/otel
touch ${{ github.workspace }}/tmp/otel/file_exporter.json
sudo chmod 777 -R ${{ github.workspace }}/tmp/otel
docker run -p 4317:4317 -p 4318:4318 -p 55679:55679 \
-v ${{ github.workspace }}/spec/fixtures/opentelemetry/otelcol.yaml:/etc/otel-collector-config.yaml \
-v ${{ github.workspace }}/tmp/otel:/etc/otel \
--name opentelemetry-collector -d \
otel/opentelemetry-collector-contrib:0.52.0 \
--config=/etc/otel-collector-config.yaml
sleep 2
docker logs opentelemetry-collector
- name: Install AWS SAM cli tool
if: ${{ matrix.suite == 'plugins' }}
run: |
curl -L -s -o /tmp/aws-sam-cli.zip https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip
unzip -o /tmp/aws-sam-cli.zip -d /tmp/aws-sam-cli
sudo /tmp/aws-sam-cli/install --update
- name: Tests
env:
KONG_TEST_DATABASE: cassandra
KONG_SPEC_TEST_GRPCBIN_PORT: "15002"
KONG_SPEC_TEST_GRPCBIN_SSL_PORT: "15003"
KONG_SPEC_TEST_OTELCOL_FILE_EXPORTER_PATH: ${{ github.workspace }}/tmp/otel/file_exporter.json
TEST_SUITE: ${{ matrix.suite }}
TEST_SPLIT: ${{ matrix.split }}
run: |
make dev # required to install other dependencies like bin/grpcurl
source ${{ env.BUILD_ROOT }}/kong-dev-venv.sh
.ci/run_tests.sh
pdk-tests:
name: PDK tests
runs-on: ubuntu-22.04
needs: build
steps:
- name: Checkout Kong source code
uses: actions/checkout@v3
- name: Lookup build cache
id: cache-deps
uses: actions/cache@v3
with:
path: |
${{ env.BUILD_ROOT }}
key: ${{ hashFiles('.requirements', 'kong-*.rockspec', '.bazelversion', '.bazelrc', 'build/**', 'BUILD.bazel', 'WORKSPACE', '.github/workflows/build_and_test.yml') }}
- name: Install Test::Nginx
run: |
CPAN_DOWNLOAD=./cpanm
mkdir -p $CPAN_DOWNLOAD
curl -o $CPAN_DOWNLOAD/cpanm https://cpanmin.us
chmod +x $CPAN_DOWNLOAD/cpanm
echo "Installing CPAN dependencies..."
$CPAN_DOWNLOAD/cpanm --notest --local-lib=$HOME/perl5 local::lib && eval $(perl -I $HOME/perl5/lib/perl5/ -Mlocal::lib)
$CPAN_DOWNLOAD/cpanm --notest Test::Nginx
- name: Tests
env:
TEST_SUITE: pdk
run: |
source ${{ env.BUILD_ROOT }}/kong-dev-venv.sh
eval $(perl -I $HOME/perl5/lib/perl5/ -Mlocal::lib)
.ci/run_tests.sh