[Backport release/3.3.x] chore(patches): apply the LuaJIT ARM64 LDP/STP fusion fix from LuaJIT #27607
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |