Skip to content

Commit

Permalink
test unit test.
Browse files Browse the repository at this point in the history
  • Loading branch information
shibd committed Dec 4, 2023
1 parent 6e7c139 commit aa85f7d
Showing 1 changed file with 3 additions and 278 deletions.
281 changes: 3 additions & 278 deletions .github/workflows/ci-pr-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ jobs:
matrix:
python:
- "3.10"
run_number: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

steps:
- uses: actions/checkout@v3
Expand All @@ -47,287 +48,11 @@ jobs:
with:
python-version: ${{ matrix.python }}

- name: Run Test
- name: Run Test ${{ matrix.run_number }}
run: |
echo "Run number: ${{ matrix.run_number }}"
./tests/run-unit-tests.sh
- name: Check license headers
run: |
npm run license:checkheader
validation-yarn:
name: Validation use yarn install
runs-on: ubuntu-22.04
timeout-minutes: 120

steps:
- uses: actions/checkout@v3
- name: Use Node.js 18
uses: actions/setup-node@v3
with:
node-version: 18

- name: Use yarn install
run: |
yarn install --ignore-scripts
macos-napi:
name: Build NAPI macos - Node ${{matrix.nodejs}} - ${{matrix.arch}}
runs-on: macos-latest
timeout-minutes: 3000

strategy:
fail-fast: false
matrix:
arch:
- x64
- arm64
nodejs:
- 18
python:
- "3.10"
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.nodejs }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.nodejs }}
cache: 'npm'

- name: Use Python ${{ matrix.python }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python }}

- name: Add arch env vars
run: |
if [ "${{ matrix.arch }}" = "x64" ]; then
echo "ARCH=x86_64" >> $GITHUB_ENV
else
echo "ARCH=${{ matrix.arch }}" >> $GITHUB_ENV
fi
- name: Build Node binaries lib
run: |
export ARCH=${{ env.ARCH }}
pkg/mac/download-cpp-client.sh
npm install --ignore-scripts
npx node-pre-gyp configure --target_arch=${{ matrix.arch }}
npx node-pre-gyp build --target_arch=${{ matrix.arch }}
- name: Test loading Node binaries lib
if: matrix.arch == 'x64'
run: |
node pkg/load_test.js
- name: Package Node binaries lib
run: |
npx node-pre-gyp package --target_arch=${{ matrix.arch }}
linux-napi:
name: Build NAPI ${{matrix.image}} - Node ${{matrix.nodejs}} - ${{matrix.cpu.platform}}
runs-on: ubuntu-22.04
timeout-minutes: 3000

strategy:
fail-fast: false
matrix:
image:
- 'linux_glibc'
- 'linux_musl'
nodejs:
- 18
cpu:
- {arch: 'x86_64', platform: 'x86_64'}
- {arch: 'aarch64', platform: 'arm64'}

steps:
- name: checkout
uses: actions/checkout@v3

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build Linux Docker image
uses: docker/build-push-action@v3
with:
file: ./pkg/linux/Dockerfile_${{matrix.image}}
load: true
tags: build:latest
platforms: linux/${{matrix.cpu.arch}}
build-args: |
PLATFORM=${{matrix.cpu.platform}}
ARCH=${{matrix.cpu.arch}}
NODE_VERSION=${{matrix.nodejs}}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Build and Test NAPI file
run: |
docker run -i -v $PWD:/pulsar-client-node build:latest \
/pulsar-client-node/pkg/linux/build-napi-inside-docker.sh
- name: Test NAPI file in linux_glibc containers
if: matrix.image == 'linux_glibc'
run: |
./tests/load-test.sh node:16-buster ${{matrix.cpu.platform}}
./tests/load-test.sh node:16-bullseye ${{matrix.cpu.platform}}
./tests/load-test.sh node:19-buster ${{matrix.cpu.platform}}
./tests/load-test.sh node:19-bullseye ${{matrix.cpu.platform}}
- name: Test NAPI file in linux_musl containers
if: matrix.image == 'linux_musl'
run: |
./tests/load-test.sh node:18-alpine3.15 ${{matrix.cpu.platform}}
./tests/load-test.sh node:16-alpine3.15 ${{matrix.cpu.platform}}
windows-napi:
name: Build NAPI windows - Node ${{matrix.nodejs}} - ${{matrix.arch}}
runs-on: windows-2022
timeout-minutes: 3000

strategy:
fail-fast: false
matrix:
arch:
- x64
- x86
nodejs:
- 18
python:
- "3.10"
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.nodejs }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.nodejs }}
architecture: ${{ matrix.arch }}
cache: 'npm'

- name: Use Python ${{ matrix.python }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python }}

- name: Cache CPP Client
id: cache-dependencies
uses: actions/cache@v3
with:
path: pkg/windows/
key: ${{ runner.os }}-${{ matrix.arch }}-${{ hashFiles('pulsar-client-cpp.txt') }}

- name: Add env vars
shell: bash
run: |
if [ "${{ matrix.arch }}" = "x86" ]; then
echo "TARGET=ia32" >> $GITHUB_ENV
else
echo "TARGET=${{ matrix.arch }}" >> $GITHUB_ENV
fi
- name: Download CPP Client
if: steps.cache-dependencies.outputs.cache-hit != 'true'
run: |
pkg/windows/download-cpp-client.bat ${{ matrix.arch }}
- name: Build Node binaries lib
run: |
npm install --ignore-scripts
npx node-pre-gyp configure --target_arch=${{ env.TARGET }}
npx node-pre-gyp build --target_arch=${{ env.TARGET }}
- name: Test loading Node binaries lib
run: |
node pkg/load_test.js
- name: Package Node binaries lib
run: |
npx node-pre-gyp package --target_arch=${{ env.TARGET }}
macos-napi-homebrew:
name: Build NAPI macos with CPP lib installed by Homebrew
runs-on: macos-latest
timeout-minutes: 3000
strategy:
fail-fast: false
matrix:
python:
- "3.10"

steps:
- uses: actions/checkout@v3
- name: Use Node.js 18
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
- name: Use Python ${{ matrix.python }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python }}
- name: Install CPP lib
run: |
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=true
brew update
brew install libpulsar
- name: Build Node binaries lib
run: |
npm install --ignore-scripts
npx node-pre-gyp configure
npx node-pre-gyp build
- name: Test loading Node binaries lib
run: |
node pkg/load_test.js
- name: Package Node binaries lib
run: |
npx node-pre-gyp package
linux-napi-apt:
name: Build NAPI linux with CPP lib installed by APT
runs-on: ubuntu-22.04
timeout-minutes: 3000
strategy:
fail-fast: false
matrix:
python:
- "3.10"

steps:
- uses: actions/checkout@v3
- name: Use Node.js 18
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'

- name: Use Python ${{ matrix.python }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python }}

- name: Install CPP lib
run: |
source pulsar-client-cpp.txt
UNAME_ARCH=$(uname -m)
if [ $UNAME_ARCH == 'aarch64' ]; then
PLATFORM='arm64'
else
PLATFORM='x86_64'
fi
curl -s -L -O ${CPP_CLIENT_BASE_URL}/deb-${PLATFORM}/apache-pulsar-client.deb
curl -s -L -O ${CPP_CLIENT_BASE_URL}/deb-${PLATFORM}/apache-pulsar-client-dev.deb
sudo -E apt -y install ./apache-pulsar-client.deb ./apache-pulsar-client-dev.deb
- name: Build Node binaries lib
run: |
npm install --ignore-scripts
npx node-pre-gyp configure
npx node-pre-gyp build
- name: Test loading Node binaries lib
run: |
node pkg/load_test.js
- name: Package Node binaries lib
run: |
npx node-pre-gyp package

0 comments on commit aa85f7d

Please sign in to comment.