Skip to content

Unref server

Unref server #3055

Workflow file for this run

name: Continuous Integration
on:
push:
pull_request:
permissions: read-all
env:
# https://github.com/actions/checkout/issues/1590
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true
jobs:
# prebuilds-linux:
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# container: ['node:14.0.0']
# node_api_target: ['14.0.0', '15.0.0', '16.0.0', '17.0.1', '18.0.0']
# include:
# - container: 'node:16.0.0'
# node_api_target: '20.0.0'
# - container: 'node:16.0.0'
# node_api_target: '21.2.0'
# container: ${{ matrix.container }}
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# - uses: actions/setup-node@v3
# - name: Install npm dependencies
# run: npm ci --ignore-scripts --no-optional
# - name: Prebuild
# run: npm run prebuild:os ${{ matrix.node_api_target }}
# - name: upload prebuilds
# uses: actions/upload-artifact@v3
# with:
# name: prebuilds-linux
# path: prebuilds
# prebuilds-linux-arm64:
# runs-on: [self-hosted, Linux, ARM64]
# strategy:
# fail-fast: false
# matrix:
# container: ['node:14.0.0']
# node_api_target: ['14.0.0', '15.0.0', '16.0.0', '17.0.1', '18.0.0']
# include:
# - container: 'node:16.0.0'
# node_api_target: '20.0.0'
# - container: 'node:16.0.0'
# node_api_target: '21.2.0'
# container: ${{ matrix.container }}
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# - uses: actions/setup-node@v3
# - name: Install npm dependencies
# run: npm ci --ignore-scripts --no-optional
# - name: Prebuild
# run: npm run prebuild:os ${{ matrix.node_api_target }}
# - name: upload prebuilds
# uses: actions/upload-artifact@v3
# with:
# name: prebuilds-linux-arm64
# path: prebuilds
# prebuilds-macos-windows:
# strategy:
# fail-fast: false
# matrix:
# os: [windows-2019, macos-12]
# node_api_target: ['14.0.0', '15.0.0', '16.0.0', '17.0.1', '18.0.0', '20.0.0', '21.2.0']
# include:
# - os: macos-12
# python_version: '3.11'
# runs-on: ${{ matrix.os }}
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# - uses: actions/setup-python@v4
# with:
# python-version: ${{ matrix.python_version }}
# - uses: actions/setup-node@v3
# with:
# node-version: '16'
# - name: Install npm dependencies
# run: npm ci --ignore-scripts
# - name: Prebuild
# run: npm run prebuild:os ${{ matrix.node_api_target }}
# - name: upload prebuilds
# uses: actions/upload-artifact@v3
# with:
# name: prebuilds-macos-windows
# path: prebuilds
# create-package:
# needs: [prebuilds-linux, prebuilds-macos-windows, prebuilds-linux-arm64]
# runs-on: ubuntu-latest
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# - uses: actions/setup-python@v4
# with:
# python-version: '3.11'
# - uses: actions/setup-node@v3
# with:
# node-version: '16'
# - name: download prebuilds
# uses: actions/download-artifact@v3
# - name: copy prebuilds
# run: |
# mkdir -p prebuilds
# cp -r prebuilds-linux/* prebuilds
# cp -r prebuilds-macos-windows/* prebuilds
# cp -r prebuilds-linux-arm64/* prebuilds
# - name: Install npm dependencies
# run: npm ci --ignore-scripts
# - name: Build
# run: npm run compile
# - name: Pack
# id: pack
# run: |
# echo "::set-output name=package_file::$(npm pack)"
# - name: Upload package
# uses: actions/upload-artifact@v3
# with:
# name: ${{ steps.pack.outputs.package_file }}
# path: ${{ steps.pack.outputs.package_file }}
unit-tests:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['ubuntu-latest', 'macos-latest']
nodejs: ['18', '20', '21']
include:
- os: 'macos-latest'
python_version: '3.11'
- os: 'windows-2019'
nodejs: '18.20.1'
- os: 'windows-2019'
nodejs: '20.12.1'
- os: 'windows-2019'
nodejs: '21.7.2'
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python_version }}
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.nodejs }}
- name: Install npm dependencies
run: npm ci
- name: Test
run: npm run test
- name: Report Coverage
if: ${{matrix.nodejs == '16' && matrix.os == 'ubuntu-latest'}}
uses: codecov/codecov-action@v3
with:
verbose: true
unit-tests-arm64:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: ['ARM64']
nodejs: ['18', '20', '21']
container: node:${{ matrix.nodejs }}
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python_version }}
- name: Install npm dependencies
run: npm ci --unsafe-perm
- name: Test
run: npm run test
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: actions/setup-node@v3
with:
node-version: 18
- name: Install npm dependencies
run: npm ci
- name: Build
run: npm run compile
- name: Generate metadata YAML
run: node scripts/generate-metadata-yaml.js > splunk-otel-js-metadata.yaml
- name: Upload metadata yaml
uses: actions/upload-artifact@v3
with:
name: splunk-otel-js-metadata.yaml
path: splunk-otel-js-metadata.yaml
# centos-build-check:
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# nodejs: [14]
# include:
# - container: 'centos:7'
# - cmd: 'curl -sL https://rpm.nodesource.com/setup_${NODE_VERSION}.x | bash - && yum install -y nodejs gcc-c++ make'
# name: CentOS build check - ${{ matrix.container }} - Node.js ${{ matrix.nodejs }}
# container: ${{ matrix.container }}
# env:
# NODE_VERSION: ${{ matrix.nodejs }}
# steps:
# - name: Setup container
# run: |
# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=https://archive.kernel.org/centos-vault|g' /etc/yum.repos.d/CentOS-*
# yum update -y
# ${{ matrix.cmd }}
# - name: Checkout
# uses: actions/checkout@v3
# - name: Install npm dependencies
# run: npm ci --ignore-scripts --no-optional
# - name: Compile native
# run: npm run prebuild:current
# - name: Run tests
# run: npm run test
# centos-prebuild-check:
# needs: [prebuilds-linux]
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# container: ['centos:7']
# nodejs: [14, 16]
# name: Centos check - ${{ matrix.container }} - Node.js ${{ matrix.nodejs }}
# container: ${{ matrix.container }}
# env:
# NODE_VERSION: ${{ matrix.nodejs }}
# steps:
# - name: Setup container
# run: |
# sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
# sed -i 's|#baseurl=http://mirror.centos.org|baseurl=https://archive.kernel.org/centos-vault|g' /etc/yum.repos.d/CentOS-*
# yum update -y
# curl -sL https://rpm.nodesource.com/setup_${NODE_VERSION}.x | bash - && yum install -y nodejs gcc-c++ make
# - name: Checkout
# uses: actions/checkout@v3
# - name: Download
# uses: actions/download-artifact@v3
# - name: copy prebuilds
# run: |
# mkdir -p prebuilds
# cp -r prebuilds-linux/* prebuilds
# - name: Install npm dependencies
# run: npm ci --ignore-scripts --no-optional --loglevel verbose
# - name: Run tests
# run: npm run test
# e2e-local:
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# include:
# - target: ''
# name: 'Basic'
# - target: '-f express.override.yml'
# name: 'Express'
# - target: '-f mixed.override.yml'
# name: 'Mixed'
# - target: '-f log-injection.override.yml'
# name: 'Log injection'
# - target: '-f profiling.override.yml'
# name: 'Profiling'
# - target: '-f typescript.override.yml'
# name: 'TypeScript'
# name: e2e local ${{ matrix.name }}
# steps:
# - name: Checkout
# uses: actions/checkout@v3
# - name: Test ${{ matrix.name }} example
# working-directory: test/examples
# run: docker compose -f e2e.docker-compose.yml ${{ matrix.target }} up --exit-code-from test