Skip to content
This repository was archived by the owner on Dec 8, 2025. It is now read-only.
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
4c2142e
12.0.0-nh.0
ronilan Apr 6, 2022
35e207c
Updated liboboe to staged (!!) 10.3.0 which provides mode flag indica…
ronilan Oct 27, 2021
5703952
Added mode to options passed to init memory test.
ronilan Oct 27, 2021
f0a8d45
Updated liboboe to patched (!!!) 10.3.0 bug fixed.
ronilan Oct 28, 2021
0c62e4f
Enabled support for liboboe mode 1 (w3c) in bindings. using minimal m…
ronilan Oct 28, 2021
9cac03c
Added mode 1 (w3c) tests. using minimal modification approach. no ref…
ronilan Oct 28, 2021
399b22a
Updated liboboe to fixed staged (!!) 10.3.0.
ronilan Oct 28, 2021
6a345ac
Tightened regex validation of xtrace and traceparent.
ronilan Nov 4, 2021
4307d29
Updated liboboe to current staged (!!) 10.3.0.
ronilan Nov 8, 2021
032ef7d
Updated liboboe to current staged (!!) 10.3.0.
ronilan Nov 19, 2021
7dc4b61
Modified tests to work with updated liboboe.
ronilan Nov 19, 2021
5e98144
Updated workflows to work with updated tests.
ronilan Nov 19, 2021
71059a1
Skipping test/solo/notifier.test.js which no longer works.
ronilan Nov 19, 2021
bf8fd1c
Added memory test for mode 1.
ronilan Nov 20, 2021
ed2ab87
Removed disabled notifier functionality from code.
ronilan Dec 2, 2021
e6562ef
Removed disabled notifier functionality from tests.
ronilan Dec 2, 2021
ba3e952
Replaced rc-files-t2 bucket with solarwinds-apm-staging bucket.
ronilan Dec 7, 2021
03836c6
Added test coverage to the format functionality of Event.toString() i…
ronilan Dec 8, 2021
3a5a726
Cleanup of tests text.
ronilan Dec 16, 2021
ad665b3
Removed dockerfiles for node 10 and 12 images.
ronilan Jan 13, 2022
8635b0f
Removed node 10 and 12 images from GithHub actions config files.
ronilan Jan 13, 2022
2bdc92d
Upgraded Mocha to latest. Modified test running script to work with n…
ronilan Jan 13, 2022
a27e1bd
Removed versions 10 and 12 from dev environment and set version 16 as…
ronilan Jan 14, 2022
5996d04
Set version 16 as default for GitHub Actions.
ronilan Jan 14, 2022
cb573f7
Remove leftover bullseye.
ronilan Jan 19, 2022
306b909
Updated liboboe to current staged (!!!) 10.3.1.
ronilan Feb 11, 2022
f5805fb
Updated liboboe to current 10.3.2
ronilan Mar 31, 2022
0c83191
Tweak for rebase on top of AO-21080-Refactor-Tests-and-GH-Actions-for…
ronilan Apr 5, 2022
fd53195
Updated tests:
ronilan Apr 5, 2022
0b5ed45
Updated GH Actions to set new environment variables as required by mo…
ronilan Apr 5, 2022
8c70efe
Updated documentation to reflect changes in tests and GH Action setup.
ronilan Apr 5, 2022
8b5c731
Ran npm audit fix and npm update.
ronilan Apr 5, 2022
cdc202c
Fix missing node 16 centos in config.
ronilan Apr 5, 2022
0e8fdfd
package-lock.json
ronilan Apr 7, 2022
6d4724f
Updated liboboe to current 10.3.3
ronilan Apr 22, 2022
7c4bedf
12.0.0-nh.1
ronilan Apr 22, 2022
2111352
Tweak for rebase on top of AO-21099-Add-Support-for-Node-18-Replacing…
ronilan Apr 27, 2022
f9db898
Updated all devDependencies to latest.
ronilan Jun 1, 2022
4fe7fe1
Updated liboboe to current 10.5.0
ronilan May 31, 2022
ffd1d54
Updated oboe related scripts (local and GitHub Actions) with new stag…
ronilan May 31, 2022
af28149
Updated docker images and config images. liboboe 10.5.0 supports alpi…
ronilan May 31, 2022
617e319
Updated logic used to decide if a trace has metadata due to api chang…
ronilan Jun 1, 2022
03ad108
Changed liboboe bucket urls to CDN endpoints.
ronilan Jun 1, 2022
6c459dc
Updated documentation.
ronilan Jun 1, 2022
2cfb784
Added flawfinder to dev setup.
ronilan Jun 3, 2022
4b23f0c
Removed Sanitizer Functionality from bindings (a simplified and impro…
ronilan May 30, 2022
e8100b3
Removed slim images from Target and Prebuilt groups as they are no lo…
ronilan Jun 15, 2022
d8bfc3d
Updated liboboe to current 10.5.1
ronilan Jun 20, 2022
622fd80
Added alpine 3.16 images for node 14, 16, 18 to prebuilt and target g…
ronilan Jun 30, 2022
c434b4b
Removed dev repo setup.
ronilan Jun 30, 2022
557b674
Updated liboboe to current 10.5.2
ronilan Jul 13, 2022
4faca53
Ran npm update.
ronilan Jul 13, 2022
7a3838a
Updated addon-api to 5.0 (latest) and bumped dev dependencies.
ronilan Jul 13, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 8 additions & 36 deletions .github/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ This is a **Linux Only package** with no Mac or Windows support.
* [Testing](#testing)
* [Building](#building)
* [Debugging](#debugging)
* [Dev Repo](#dev-repo)
- [Development & Release with GitHub Actions](#development--release-with-github-actions)
* [Overview](#overview)
* [Usage](#usage)
Expand Down Expand Up @@ -53,7 +52,7 @@ Those are available in the Docker Dev Container.
`git clone` to start.

* `src` directory contains the C++ code to bind to liboboe.
* `oboe` directory contains `liboboe` and its required header files. `liboboe` is downloaded from: https://files.appoptics.com/c-lib. Pre-release versions are at: https://rc-files-t2.s3-us-west-2.amazonaws.com/c-lib/
* `oboe` directory contains `liboboe` and its required header files. `liboboe` is downloaded from: https://agent-binaries.cloud.solarwinds.com/apm/c-lib. Pre-release versions are at: https://agent-binaries.global.st-ssp.solarwinds.com/apm/c-lib
* `test` directory contains the test suite.
* `.github` contains the files for github actions.
* `dev` directory contains anything related to dev environment
Expand All @@ -62,7 +61,9 @@ Those are available in the Docker Dev Container.
## Docker Dev Container

1. Start the Docker daemon (on a Mac that would be simplest using Docker desktop).
2. Create a `.env` file and set: `APPOPTICS_SERVICE_KEY={a valid service key}`, `APPOPTICS_COLLECTOR={a url of the collector}` and `AO_TEST_PROD_SERVICE_KEY={a valid **production** service key}`.
2. Create a `.env` file and set two sets of keys for both backends:
- `APPOPTICS_SERVICE_KEY={a valid service key}`, `APPOPTICS_COLLECTOR={a url of the collector}` and `AO_TEST_PROD_SERVICE_KEY={a valid **production** service key}`.
- `SW_APM_SERVICE_KEY={a valid service key}`, `SW_APM_COLLECTOR={a url of the collector}` and `SW_TEST_PROD_SERVICE_KEY={a valid **production** service key}`.
3. Run `npm run dev`. This will create a docker container, set it up, and open a shell. Docker container will have all required build tools as well as nano installed, and access to GitHub SSH keys as configured. Repo code is **mounted** to the container.
4. To open another shell in same container use: `docker exec -it dev-bindings /bin/bash`

Expand Down Expand Up @@ -163,39 +164,6 @@ Dump a `.node` file as asm (build debug for better symbols):

`objdump -CRrS build/Release/ao-metrics.node > ao-metrics.s`

## Dev Repo

The dev repo setup allows to run end-to-end `node-pre-gyp` and npm release process in a development environment.
It also greatly simplifies creating and testing CI integrations such as GitHub Actions.

It contains:
- dev repo: https://github.com/appoptics/appoptics-bindings-node-dev (private, permissions via AppOptics Organization admin)
- staging S3 bucket: https://apm-appoptics-bindings-node-dev-staging.s3.us-east-1.amazonaws.com (public, write permissions via SolarWinds admin)
- production S3 bucket: https://apm-appoptics-bindings-node-dev-production.s3.amazonaws.com (public, write permissions via SolarWinds admin)

The dev repo was cloned from the main repo and setup with the appropriate secrets.

To set the main repo to work with the dev repo:

1. `git remote -v`
2. `git remote add dev git@github.com:appoptics/appoptics-bindings-node-dev.git`
3. `npm run dev:repo:reset`

The script will:
- Force push all branches and tags to dev repo.
- Remove the local dev repo and clone a fresh one into a sibling directory.
- Modify package.json:
```
"name": "@appoptics/apm-binding-dev",
"staging_host": "https://apm-appoptics-bindings-node-dev-staging.s3.us-east-1.amazonaws.com",
"production_host": "https://apm-appoptics-bindings-node-dev-production.s3.amazonaws.com",
```
- Commit updated `package.json` to `master` all branches.

To start fresh on the dev repo run `npm run dev:repo:reset` again.

When running a [Release](#release---push-version-tag) process on the dev repo, the package will be published to https://www.npmjs.com/package/@appoptics/apm-bindings-dev. It should be [unpublished](https://docs.npmjs.com/unpublishing-packages-from-the-registry) as soon as possible. Note that because the package is scoped to the organization, the organization admin must temporarily reassign this package to just the dev-internal team; this team has a single member, which is one of the requirements for unpublishing per https://docs.npmjs.com/policies/unpublish#packages-published-more-than-72-hours-ago.

# Development & Release with GitHub Actions

> **tl;dr** Push to feature branch. Create Pull Request. Merge Pull Request. Push version tag to release.
Expand Down Expand Up @@ -365,6 +333,10 @@ Repo is defined with the following secrets:
APPOPTICS_SERVICE_KEY
APPOPTICS_COLLECTOR
AO_TEST_PROD_SERVICE_KEY
SW_APM_SERVICE_KEY
SW_APM_COLLECTOR
SW_TEST_PROD_SERVICE_KEY

STAGING_AWS_ACCESS_KEY_ID
STAGING_AWS_SECRET_ACCESS_KEY
PROD_AWS_ACCESS_KEY_ID
Expand Down
16 changes: 2 additions & 14 deletions .github/config/build-group.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,13 @@
{
"include": [
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:10-alpine3.9-build"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:10-centos7-build"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:12-alpine3.9-build"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:12-centos7-build"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:14-alpine3.10-build"
"image": "ghcr.io/$GITHUB_REPOSITORY/node:14-alpine3.13-build"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:14-centos7-build"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:16-alpine3.11-build"
"image": "ghcr.io/$GITHUB_REPOSITORY/node:16-alpine3.13-build"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:16-centos7-build"
Expand Down
40 changes: 8 additions & 32 deletions .github/config/docker-node.json
Original file line number Diff line number Diff line change
@@ -1,37 +1,7 @@
{
"include": [
{
"tag": "10-alpine3.9-build"
},
{
"tag": "10-centos7-build"
},
{
"tag": "10-amazonlinux2"
},
{
"tag": "10-centos7"
},
{
"tag": "10-centos8"
},
{
"tag": "12-alpine3.9-build"
},
{
"tag": "12-centos7-build"
},
{
"tag": "12-amazonlinux2"
},
{
"tag": "12-centos7"
},
{
"tag": "12-centos8"
},
{
"tag": "14-alpine3.10-build"
"tag": "14-alpine3.13-build"
},
{
"tag": "14-centos7-build"
Expand All @@ -46,11 +16,17 @@
"tag": "14-centos8"
},
{
"tag": "16-alpine3.11-build"
"tag": "16-alpine3.13-build"
},
{
"tag": "16-centos7-build"
},
{
"tag": "16-centos7"
},
{
"tag": "16-centos8"
},
{
"tag": "16-amazonlinux2"
},
Expand Down
15 changes: 0 additions & 15 deletions .github/config/fallback-group.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,5 @@
{
"include": [
{
"image": "node:10-buster"
},
{
"image": "node:10-stretch"
},
{
"image": "node:12-buster"
},
{
"image": "node:12-stretch"
},
{
"image": "node:12-bullseye"
},
{
"image": "node:14-buster"
},
Expand Down
113 changes: 10 additions & 103 deletions .github/config/prebuilt-group.json
Original file line number Diff line number Diff line change
@@ -1,86 +1,5 @@
{
"include": [
{
"image": "node:10-buster-slim"
},
{
"image": "node:10-stretch-slim"
},
{
"image": "node:10-alpine3.9"
},
{
"image": "node:10-alpine3.10"
},
{
"image": "node:10-alpine3.11"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:10-centos7"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:10-centos8"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:10-amazonlinux2"
},
{
"image": "node:12-buster-slim"
},
{
"image": "node:12-stretch-slim"
},
{
"image": "node:12-bullseye-slim"
},
{
"image": "node:12-alpine3.9"
},
{
"image": "node:12-alpine3.10"
},
{
"image": "node:12-alpine3.11"
},
{
"image": "node:12-alpine3.12"
},
{
"image": "node:12-alpine3.13"
},
{
"image": "node:12-alpine3.14"
},
{
"image": "node:12-alpine3.15"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:12-centos7"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:12-centos8"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:12-amazonlinux2"
},
{
"image": "node:14-buster-slim"
},
{
"image": "node:14-stretch-slim"
},
{
"image": "node:14-bullseye-slim"
},
{
"image": "node:14-alpine3.10"
},
{
"image": "node:14-alpine3.11"
},
{
"image": "node:14-alpine3.12"
},
{
"image": "node:14-alpine3.13"
},
Expand All @@ -90,6 +9,9 @@
{
"image": "node:14-alpine3.15"
},
{
"image": "node:14-alpine3.16"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:14-centos7"
},
Expand All @@ -99,32 +21,20 @@
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:14-amazonlinux2"
},
{
"image": "node:16-buster-slim"
},
{
"image": "node:16-stretch-slim"
},
{
"image": "node:16-stretch"
},
{
"image": "node:16-bullseye-slim"
},
{
"image": "node:16-alpine3.11"
},
{
"image": "node:16-alpine3.12"
},
{
"image": "node:16-alpine3.13"
},
{
"image": "node:16-alpine3.14"
},
{
"image": "node:14-alpine3.15"
"image": "node:16-alpine3.15"
},
{
"image": "node:16-alpine3.16"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:16-centos7"
Expand All @@ -135,18 +45,15 @@
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:16-amazonlinux2"
},
{
"image": "node:18-buster-slim"
},
{
"image": "node:18-bullseye-slim"
},
{
"image": "node:18-alpine3.14"
},
{
"image": "node:18-alpine3.15"
},
{
"image": "node:18-alpine3.16"
},
{
"image": "ghcr.io/$GITHUB_REPOSITORY/node:18-rhel8"
},
Expand Down
Loading