From 676c580259c1691d16226d7ebb6567818b87e271 Mon Sep 17 00:00:00 2001 From: Maurice Rickard Date: Tue, 13 Aug 2024 17:07:05 -0400 Subject: [PATCH] test: Testing GHA for azure site extension (#13) * docs: Updated compatibility report (#2440) Co-authored-by: jsumners-nr <150050532+jsumners-nr@users.noreply.github.com> * feat: Testing tooling available to windows runners Signed-off-by: mrickard * feat: Added dotnet setup Signed-off-by: mrickard * test: Added site extension files for workflow tests Signed-off-by: mrickard * test: Added build and archive steps for GHA testing Signed-off-by: mrickard * fix: Fixed nuget test Signed-off-by: mrickard --------- Signed-off-by: mrickard Co-authored-by: Node Agent Bot <97628601+newrelic-node-agent-team@users.noreply.github.com> Co-authored-by: jsumners-nr <150050532+jsumners-nr@users.noreply.github.com> --- .github/workflows/azure-site-extension.yml | 77 +++++++++++++++ .../Content/applicationHost.xdt | 11 +++ .../azure-site-extension/Content/install.cmd | 8 ++ .../azure-site-extension/Content/install.ps1 | 43 +++++++++ .../Content/uninstall.cmd | 7 ++ ....Azure.WebSites.Extension.NodeAgent.nuspec | 24 +++++ cloud-tooling/azure-site-extension/README.md | 90 ++++++++++++++++++ cloud-tooling/azure-site-extension/icon.png | Bin 0 -> 5559 bytes cloud-tooling/azure-site-extension/publish.sh | 12 +++ .../azure-site-extension/version.txt | 1 + compatibility.md | 21 ++-- 11 files changed, 284 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/azure-site-extension.yml create mode 100644 cloud-tooling/azure-site-extension/Content/applicationHost.xdt create mode 100644 cloud-tooling/azure-site-extension/Content/install.cmd create mode 100644 cloud-tooling/azure-site-extension/Content/install.ps1 create mode 100644 cloud-tooling/azure-site-extension/Content/uninstall.cmd create mode 100644 cloud-tooling/azure-site-extension/NewRelic.Azure.WebSites.Extension.NodeAgent.nuspec create mode 100644 cloud-tooling/azure-site-extension/README.md create mode 100644 cloud-tooling/azure-site-extension/icon.png create mode 100755 cloud-tooling/azure-site-extension/publish.sh create mode 100644 cloud-tooling/azure-site-extension/version.txt diff --git a/.github/workflows/azure-site-extension.yml b/.github/workflows/azure-site-extension.yml new file mode 100644 index 0000000000..3ee47944b4 --- /dev/null +++ b/.github/workflows/azure-site-extension.yml @@ -0,0 +1,77 @@ +name: Azure Site Extension + +on: + workflow_dispatch: + +env: + # Enable versioned runner quiet mode to make CI output easier to read: + OUTPUT_MODE: quiet + SPEC_FILE_TEMPLATE: 'NewRelic.Azure.WebSites.Extension.NodeAgent.nuspec' + PACKAGE_FILENAME: '' + SPEC_CONTENT: '' + AGENT_VERSION: '' + +jobs: + setup_tools: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v4 + - name: Setup dotnet '6.0.x' + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '6.0.x' + - name: Display dotnet version + run: dotnet --version + - name: Display NuGet version + run: nuget ? + + create_extension_bundle: + runs-on: windows-latest + needs: + - setup_tools + + strategy: + matrix: + node-version: ['18.x', '20.x'] + # Node 22 isn't yet available on Azure + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + - name: find_agent_version + run: | + npm view newrelic version >> ${{ env.AGENT_VERSION }} + cd "cloud-tooling/azure-site-extension" + echo Agent version: ${{ env.AGENT_VERSION }} + echo "NewRelic.Azure.WebSites.Extension.NodeAgent.${{env.AGENT_VERSION}}.${{ matrix.node-version }}" >> ${{ env.PACKAGE_FILENAME }} + - name: install_agent + run: | + cd Content + npm i newrelic@${{ env.AGENT_VERSION }} + - name: configure_package + run: | + cd .. + (Get-Content ${{ env.SPEC_FILE_TEMPLATE }}).Replace('{VERSION}', ${{ env.AGENT_VERSION }}).Replace('{NODE_VERSION}', ${{ matrix.node-version }}) | Set-Content ${{ env.PACKAGE_FILENAME }}.nuspec +# get-content ${{ env.SPEC_FILE_TEMPLATE }} | %{$_ -replace "{VERSION}","${{ env.AGENT_VERSION }}"} >> ${{NUSPEC_GENERATED}} + + - name: pack + run: nuget pack "${{ env.PACKAGE_FILENAME }}.nuspec" -OutputDirectory=./azure-site-extension/dist + - name: Archive package for verification + uses: actions/upload-artifact@v4 + with: + name: azure-site-extension-test-${{ env.PACKAGE_FILENAME }} + path: ./azure-site-extension/dist/ + +# - name: publish_package +# run: | +# NUGET_API_KEY=$1 +# NUGET_SOURCE=$2 +# dotnet nuget push "NewRelic.Azure.WebSites.Extension.NodeAgent.${VERSION}.nupkg" --api-key ${NUGET_API_KEY} --source ${NUGET_SOURCE} +# + + + diff --git a/cloud-tooling/azure-site-extension/Content/applicationHost.xdt b/cloud-tooling/azure-site-extension/Content/applicationHost.xdt new file mode 100644 index 0000000000..727bea69a9 --- /dev/null +++ b/cloud-tooling/azure-site-extension/Content/applicationHost.xdt @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/cloud-tooling/azure-site-extension/Content/install.cmd b/cloud-tooling/azure-site-extension/Content/install.cmd new file mode 100644 index 0000000000..1618af677e --- /dev/null +++ b/cloud-tooling/azure-site-extension/Content/install.cmd @@ -0,0 +1,8 @@ +:: Copyright 2022 New Relic Corporation. All rights reserved. +:: SPDX-License-Identifier: Apache-2.0 + +@echo off + +powershell.exe -ExecutionPolicy RemoteSigned -File install.ps1 + +echo %ERRORLEVEL% diff --git a/cloud-tooling/azure-site-extension/Content/install.ps1 b/cloud-tooling/azure-site-extension/Content/install.ps1 new file mode 100644 index 0000000000..767fc6802e --- /dev/null +++ b/cloud-tooling/azure-site-extension/Content/install.ps1 @@ -0,0 +1,43 @@ +############################################################ +# Copyright 2022 New Relic Corporation. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +############################################################ + +# Install.ps1 +# +# This version uses npm install, which we're not going to want to do +# in the released version + +try { + WriteToInstallLog "Start executing install.ps1" + + # Selects the agent version + $agentVersion = "latest" + if ($env:NEWRELIC_AGENT_VERSION_OVERRIDE -ne $null) { + $agentVersion = $env:NEWRELIC_AGENT_VERSION_OVERRIDE.ToString() + WriteToInstallLog "Installing Node agent version $agentVersion" + } else { + WriteToInstallLog "Installing the latest Node agent" + } + + WriteToInstallLog "Executing npm install newrelic@latest" + npm install newrelic@latest + + WriteToInstallLog "End executing install.ps1." + WriteToInstallLog "-----------------------------" + exit $LASTEXITCODE +} +catch +{ + $errorMessage = $_.Exception.Message + $errorLine = $_.InvocationInfo.ScriptLineNumber + WriteToInstallLog "Error at line $errorLine : $errorMessage" + WriteToInstallLog "Explicitly adding node to path" + SET PATH=C:\Program Files\Nodejs;%PATH% + WriteToInstallLog "Executing npm install newrelic@latest" + npm install newrelic@latest + WriteToInstallLog "End executing install.ps1." + WriteToInstallLog "-----------------------------" + + exit $LASTEXITCODE +} diff --git a/cloud-tooling/azure-site-extension/Content/uninstall.cmd b/cloud-tooling/azure-site-extension/Content/uninstall.cmd new file mode 100644 index 0000000000..2a88ef5f3b --- /dev/null +++ b/cloud-tooling/azure-site-extension/Content/uninstall.cmd @@ -0,0 +1,7 @@ +:: Copyright 2022 New Relic Corporation. All rights reserved. +:: SPDX-License-Identifier: Apache-2.0 + +SET NEW_RELIC_FOLDER="%HOME%\node_modules/newrelic" +IF EXIST %NEW_RELIC_FOLDER% ( + npm uninstall newrelic +) diff --git a/cloud-tooling/azure-site-extension/NewRelic.Azure.WebSites.Extension.NodeAgent.nuspec b/cloud-tooling/azure-site-extension/NewRelic.Azure.WebSites.Extension.NodeAgent.nuspec new file mode 100644 index 0000000000..0a1359b3e5 --- /dev/null +++ b/cloud-tooling/azure-site-extension/NewRelic.Azure.WebSites.Extension.NodeAgent.nuspec @@ -0,0 +1,24 @@ + + + + NewRelic.Azure.WebSites.Extension.NodeAgent + {VERSION}-{NODE_VERSION} + New Relic Node Agent {VERSION} (Node.js {NODE_VERSION}) + New Relic + Apache-2.0 + https://github.com/newrelic/node-newrelic + true + This extension adds the New Relic Node Agent to your Azure WebSite. + https://newrelic.com/static-assets/images/icons/avatar-newrelic.png + images\icon.png + New Relic, Inc., 2024 + AzureSiteExtension + + + + + + + + + diff --git a/cloud-tooling/azure-site-extension/README.md b/cloud-tooling/azure-site-extension/README.md new file mode 100644 index 0000000000..960e74e8fb --- /dev/null +++ b/cloud-tooling/azure-site-extension/README.md @@ -0,0 +1,90 @@ +# Azure Node Agent Site Extension + +This project creates an Azure site extension that automatically installs the New Relic Node Agent. This extension is designed for JVM applications running on Azure Windows compute resources. The site extensions follow [semantic versioning conventions](https://semver.org/). You can expect to find artifacts in [Nuget](https://www.nuget.org/). + +## Installation + +This extension is designed for Node applications running on Azure Windows compute resources. + +**Note:** Make sure that the target application is stopped prior to installing the extension. + +From the Azure Home page, do the following: +- Click the App Services tile +- Click the name of the target application in the displayed list +- On the options listed on the left, scroll down to "Extensions" located under the `Development Tools` category +- Click on `+ Add` at the top of the page +- From the extension drop down, select `New Relic Node Agent` +- Click on the `Accept Legal Terms` link +- Click `OK` on the bottom left of the page +- Again, click `OK` on the bottom left of the page. This will begin installation of the extension + +Once installed, the extension creates the following artifacts: +- Folder: `C:\home\node_modules\newrelic` - Contains the Node agent artifacts +- XDT: `applicationHost.xdt` that will add the necessary environment variable on application startup + +If the extension fails to install, a log file is created at `C:\home\SiteExtensions\NewRelic.Azure.WebSites.Extension.NodeAgent\install.log`. + +## Getting Started + +Once the site extension is installed, you'll need to manually enter two configuration items before restarting your application: +- On the options listed on the left, scroll down to "Configuration" located under the `Settings` category +- On the configuration page, add the following two app settings: + - `NEW_RELIC_LICENSE_KEY` - Your New Relic license key value + - `NEW_RELIC_APP_NAME` - The name you wish your application to show up as in the New Relic Platform + +You can also add any additional [app settings](https://docs.newrelic.com/docs/apm/agents/node-agent/configuration/node-agent-configuration-config-file/#Environment_Variables) to configure the agent as needed. + +## Building + +### Installing Dependencies (for MacOS and Linux) + +- Download and install the latest version of [Mono](https://www.mono-project.com/download/stable/) +- Download `nuget.exe`: `sudo curl -o /usr/local/bin/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe` +- Create an alias in your .bashrc or .zshrc for mono: `alias nuget="mono /usr/local/bin/nuget.exe"` +- Download and install [.Net 6](https://dotnet.microsoft.com/en-us/download/dotnet/6.0). Using the installer will create a `dotnet` command that will be available when you restart your shell. +- Restart your shell and execute `nuget` to verify your mono installation and `dotnet` to verify your .Net installation. + +References: +- https://www.wiliam.com.au/wiliam-blog/creating-a-nuget-package +- https://learn.microsoft.com/en-au/nuget/install-nuget-client-tools#nugetexe-cli + +### Publishing the Package + +#### Publishing the Package with the Script (recommended) +- Your nuget package version is hardcoded in `version.txt`, update the file to change the version number. +- Run `./publish.sh `: this will create the NuGet package and upload to the target repository +- The parameters for `publish.sh` are the following: + - `NUGET_API_KEY` - API key for uploading artifacts to the target NuGet repository + - `NUGET_SOURCE` - Target NuGet repository (https://api.nuget.org/v3/index.json is the main, public URL) + +#### Manually publishing the Package + +- Change into the folder where the `.nuget` file exists +- Replace `{VERSION}` in `NewRelic.Azure.WebSites.Extension.NodeAgent.nuspec` with a version number you want to push. (DO NOT COMMIT THIS CHANGE) +- Execute: `nuget pack NewRelic.Azure.WebSites.Extension.NodeAgent.nuspec` +- This will create a package with the name: `NewRelic.Azure.WebSites.Extension.NodeAgent.VERSION.nupkg` +- Execute: `dotnet nuget push NewRelic.Node.Azure.WebSites.Extension.nupkg --api-key NUGET_API_KEY --source NUGET_SOURCE` where `NUGET_API_KEY` is your NuGet API key and `NUGET_SOURCE` is the URL of the target NuGet site (https://api.nuget.org/v3/index.json is the main, public URL) + +For testing the extension, it is best to publish to a personel [MyGet repository](https://www.myget.org/). There you can publish and release packages without worrying about pushing your extension out to the publix. + +## Testing + +It is recommended you use a personnel repository created in [MyGet](https://www.myget.org/). + +Upload the nuget package then set up an app config variable in Azure: +- `SCM_SITEEXTENSIONS_FEED_URL`: The URL to the private Nuget repository created when registering your myget.org account. For example: https://www.myget.org/F/username-nuget-test/api/v3/index.json + +In Azure, when you browse to `Development Tools` > `Extensions`, you will see a list of Nuget packages in your private repository. + + +## Extension Source Files + +Below is a description of the files that make up the extension. This can be helpful for future maintenance on the extension or for the creation of another Site Extension. + +- `README.md` - This file +- `NewRelic.Azure.WebSites.Extension.NodeAgent.nuspec` - Contains the metadata about the target extension: Name, authors, copyright, etc. [Nuspec Format](https://learn.microsoft.com/en-us/nuget/reference/nuspec) +- `publish.sh` - Simple script to package the script and upload to the Nuget repository +- `Content/applicationHost.xdt` - XDT transformation to add the necessary agent startup environment variable to the app config when the app starts up +- `Content/install.cmd` - Simple batch file that wraps a call to the Powershell `install.ps1` script +- `Content/install.ps1` - Powershell script that downloads the agent bundle and installs it to the proper location on the host +- `Content/uninstall.cmd` - Simple batch file that will remove the Node installtion artifacts when the extension is removed diff --git a/cloud-tooling/azure-site-extension/icon.png b/cloud-tooling/azure-site-extension/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ec5bab479fd89bd3cc13deb0f01a1ffaf39ca3dd GIT binary patch literal 5559 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 FV1h4Kaw7l$ literal 0 HcmV?d00001 diff --git a/cloud-tooling/azure-site-extension/publish.sh b/cloud-tooling/azure-site-extension/publish.sh new file mode 100755 index 0000000000..4da6e28765 --- /dev/null +++ b/cloud-tooling/azure-site-extension/publish.sh @@ -0,0 +1,12 @@ +# This is just a simple shell script that will later be +# used as a template for a GHA job for +# azure-site-extension site extension uploads. + +# Dependencies: .Net 5 and up or .Net Core, Mono, and the Nuget CLI. +NUGET_API_KEY=$1 +NUGET_SOURCE=$2 +VERSION=$(cat version.txt) +NUSPEC_GENERATED="NewRelic.Azure.WebSites.Extension.NodeAgent.${VERSION}.nuspec" +sed "s/{VERSION}/${VERSION}/g" NewRelic.Azure.WebSites.Extension.NodeAgent.nuspec > "${NUSPEC_GENERATED}" +nuget pack "${NUSPEC_GENERATED}" +dotnet nuget push "NewRelic.Azure.WebSites.Extension.NodeAgent.${VERSION}.nupkg" --api-key ${NUGET_API_KEY} --source ${NUGET_SOURCE} diff --git a/cloud-tooling/azure-site-extension/version.txt b/cloud-tooling/azure-site-extension/version.txt new file mode 100644 index 0000000000..4044f90867 --- /dev/null +++ b/cloud-tooling/azure-site-extension/version.txt @@ -0,0 +1 @@ +12.0.0 diff --git a/compatibility.md b/compatibility.md index 0c13b02ab8..5571f53f85 100644 --- a/compatibility.md +++ b/compatibility.md @@ -13,26 +13,27 @@ version. | --- | --- | --- | --- | | `@apollo/gateway` | 2.3.0 | 2.8.4 | `@newrelic/apollo-server-plugin@1.0.0` | | `@apollo/server` | 4.0.0 | 4.10.5 | `@newrelic/apollo-server-plugin@2.1.0` | -| `@aws-sdk/client-bedrock-runtime` | 3.474.0 | 3.622.0 | 11.13.0 | -| `@aws-sdk/client-dynamodb` | 3.0.0 | 3.622.0 | 8.7.1 | -| `@aws-sdk/client-sns` | 3.0.0 | 3.622.0 | 8.7.1 | -| `@aws-sdk/client-sqs` | 3.0.0 | 3.622.0 | 8.7.1 | -| `@aws-sdk/lib-dynamodb` | 3.377.0 | 3.622.0 | 8.7.1 | +| `@aws-sdk/client-bedrock-runtime` | 3.474.0 | 3.624.0 | 11.13.0 | +| `@aws-sdk/client-dynamodb` | 3.0.0 | 3.624.0 | 8.7.1 | +| `@aws-sdk/client-sns` | 3.0.0 | 3.624.0 | 8.7.1 | +| `@aws-sdk/client-sqs` | 3.0.0 | 3.624.0 | 8.7.1 | +| `@aws-sdk/lib-dynamodb` | 3.377.0 | 3.624.0 | 8.7.1 | | `@aws-sdk/smithy-client` | 3.47.0 | 3.374.0 | 8.7.1 | | `@elastic/elasticsearch` | 7.16.0 | 8.14.0 | 11.9.0 | | `@grpc/grpc-js` | 1.4.0 | 1.11.1 | 8.17.0 | | `@hapi/hapi` | 20.1.2 | 21.3.10 | 9.0.0 | | `@koa/router` | 11.0.2 | 12.0.1 | 3.2.0 | -| `@langchain/core` | 0.1.17 | 0.2.19 | 11.13.0 | +| `@langchain/core` | 0.1.17 | 0.2.21 | 11.13.0 | | `@nestjs/cli` | 9.0.0 | 10.4.2 | 10.1.0 | -| `@prisma/client` | 5.0.0 | 5.17.0 | 11.0.0 | +| `@prisma/client` | 5.0.0 | 5.18.0 | 11.0.0 | | `@smithy/smithy-client` | 2.0.0 | 3.1.12 | 11.0.0 | | `amqplib` | 0.5.0 | 0.10.4 | 2.0.0 | | `apollo-server` | 3.0.0 | 3.13.0 | `@newrelic/apollo-server-plugin@1.0.0` | | `apollo-server-express` | 3.0.0 | 3.13.0 | `@newrelic/apollo-server-plugin@1.0.0` | -| `aws-sdk` | 2.2.48 | 2.1666.0 | 6.2.0 | +| `aws-sdk` | 2.2.48 | 2.1669.0 | 6.2.0 | | `bluebird` | 2.0.0 | 3.7.2 | 1.27.0 | | `bunyan` | 1.8.12 | 1.8.15 | 9.3.0 | +| `cassandra-driver` | 3.4.0 | 4.7.2 | 1.7.1 | | `connect` | 3.0.0 | 3.7.0 | 2.6.0 | | `express` | 4.6.0 | 4.19.2 | 2.6.0 | | `fastify` | 2.0.0 | 4.28.1 | 8.5.0 | @@ -47,14 +48,14 @@ version. | `mysql` | 2.2.0 | 2.18.1 | 1.32.0 | | `mysql2` | 2.0.0 | 3.11.0 | 1.32.0 | | `next` | 13.4.19 | 14.2.5 | 12.0.0 | -| `openai` | 4.0.0 | 4.54.0 | 11.13.0 | +| `openai` | 4.0.0 | 4.55.1 | 11.13.0 | | `pg` | 8.2.0 | 8.12.0 | 9.0.0 | | `pg-native` | 2.0.0 | 3.1.0 | 9.0.0 | | `pino` | 7.0.0 | 9.3.2 | 8.11.0 | | `q` | 1.3.0 | 1.5.1 | 1.26.2 | | `redis` | 3.1.0 | 4.7.0 | 1.31.0 | | `restify` | 11.0.0 | 11.1.0 | 2.6.0 | -| `superagent` | 3.0.0 | 9.0.2 | 4.9.0 | +| `superagent` | 3.0.0 | 10.0.0 | 4.9.0 | | `undici` | 5.0.0 | 6.19.5 | 11.1.0 | | `when` | 3.7.0 | 3.7.8 | 1.26.2 | | `winston` | 3.0.0 | 3.13.1 | 8.11.0 |