-
Notifications
You must be signed in to change notification settings - Fork 512
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into bernardobridge/art-1547-allow-beforeafter-va…
…lidate-script-schema-to-run-arbitrary
- Loading branch information
Showing
49 changed files
with
1,705 additions
and
62 deletions.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
name: Run AWS tests | ||
|
||
on: | ||
pull_request_target: | ||
branches: [main] | ||
#opened, reopened and synchronize will cause the workflow to fail on forks due to permissions | ||
#once labeled, that will then be overridden by the is-collaborator job | ||
types: [opened, labeled, synchronize, reopened] | ||
|
||
jobs: | ||
is-collaborator: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Get User Permission | ||
id: checkAccess | ||
uses: actions-cool/check-user-permission@cd622002ff25c2311d2e7fb82107c0d24be83f9b | ||
with: | ||
require: write | ||
username: ${{ github.actor }} | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
- name: Check User Permission | ||
if: steps.checkAccess.outputs.require-result == 'false' | ||
run: | | ||
echo "${{ github.actor }} does not have permissions on this repo." | ||
echo "Current permission level is ${{ steps.checkAccess.outputs.user-permission }}" | ||
exit 1 | ||
publish-branch-image: | ||
if: contains( github.event.pull_request.labels.*.name, 'run-aws-tests' ) | ||
needs: is-collaborator | ||
uses: ./.github/workflows/docker-ecs-worker-image.yml | ||
permissions: | ||
contents: read | ||
id-token: write | ||
secrets: | ||
ECR_WORKER_IMAGE_PUSH_ROLE_ARN: ${{ secrets.ECR_WORKER_IMAGE_PUSH_ROLE_ARN }} | ||
with: | ||
ref: ${{ github.event.pull_request.head.sha || null }} # this should only be run with this ref if is-collaborator has been run and passed | ||
|
||
run-tests: | ||
if: contains( github.event.pull_request.labels.*.name, 'run-aws-tests' ) | ||
needs: publish-branch-image | ||
timeout-minutes: 40 | ||
runs-on: ubuntu-latest | ||
permissions: | ||
contents: read | ||
id-token: write | ||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
ref: ${{ github.event.pull_request.head.sha || null }} # this should only be run with this ref if is-collaborator has been run and passed | ||
- name: Configure AWS Credentials | ||
uses: aws-actions/configure-aws-credentials@v2 | ||
env: | ||
SHOW_STACK_TRACE: true | ||
with: | ||
aws-region: eu-west-1 | ||
role-to-assume: ${{ secrets.ARTILLERY_AWS_CLI_ROLE_ARN_TEST1 }} | ||
role-session-name: OIDCSession | ||
mask-aws-account-id: true | ||
- name: Use Node.js 18.x | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: 18.x | ||
- run: npm install | ||
- run: npm run build | ||
- run: npm run test:aws --workspace artillery | ||
env: | ||
FORCE_COLOR: 1 | ||
ECR_IMAGE_VERSION: ${{ github.sha }} # the image is published with the sha of the commit within this repo | ||
ARTILLERY_CLOUD_ENDPOINT: ${{ secrets.ARTILLERY_CLOUD_ENDPOINT_TEST }} | ||
ARTILLERY_CLOUD_API_KEY: ${{ secrets.ARTILLERY_CLOUD_API_KEY_TEST }} | ||
GITHUB_REPO: ${{ github.repository }} | ||
GITHUB_ACTOR: ${{ github.actor }} |
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
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
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
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
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
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
18 changes: 18 additions & 0 deletions
18
...ages/artillery/test/cloud-e2e/fargate/fixtures/cli-exit-conditions/with-expect-ensure.yml
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
config: | ||
target: "http://asciiart.artillery.io:8080" | ||
plugins: | ||
expect: {} | ||
ensure: | ||
p99: 10000 | ||
thresholds: | ||
- "http.response_time.p95": 1 | ||
phases: | ||
- duration: 5 | ||
arrivalRate: 1 | ||
scenarios: | ||
- name: expect-ensure-exit-condition-test | ||
flow: | ||
- get: | ||
url: "/" | ||
expect: | ||
- statusCode: 300 |
14 changes: 14 additions & 0 deletions
14
packages/artillery/test/cloud-e2e/fargate/fixtures/cli-exit-conditions/with-expect.yml
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
config: | ||
target: "http://asciiart.artillery.io:8080" | ||
plugins: | ||
expect: {} | ||
phases: | ||
- duration: 5 | ||
arrivalRate: 1 | ||
scenarios: | ||
- name: expect-exit-condition-test | ||
flow: | ||
- get: | ||
url: "/" | ||
expect: | ||
- statusCode: 300 |
2 changes: 2 additions & 0 deletions
2
packages/artillery/test/cloud-e2e/fargate/fixtures/cli-kitchen-sink/kitchen-sink-env
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
DOTENV1=/ | ||
DOTENV2=/dino |
22 changes: 22 additions & 0 deletions
22
packages/artillery/test/cloud-e2e/fargate/fixtures/cli-kitchen-sink/kitchen-sink.yml
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
config: | ||
target: http://asciiart.artillery.io:8080 | ||
plugins: | ||
ensure: {} | ||
phases: | ||
- duration: 20 | ||
arrivalRate: 1 | ||
ensure: | ||
p99: 10000 | ||
thresholds: | ||
- "http.response_time.p99": 10000 | ||
scenarios: | ||
- name: load homepage | ||
flow: | ||
- get: | ||
url: "{{$processEnvironment.SECRET1}}" | ||
- get: | ||
url: "{{$processEnvironment.SECRET2}}" | ||
- get: | ||
url: "{{$processEnvironment.DOTENV1}}" | ||
- get: | ||
url: "{{$processEnvironment.DOTENV2}}" |
14 changes: 14 additions & 0 deletions
14
packages/artillery/test/cloud-e2e/fargate/fixtures/large-output/lots-of-output.yml
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
config: | ||
target: http://asciiart.artillery.io:8080 | ||
phases: | ||
- arrivalRate: 1 | ||
duration: 60 | ||
defaults: | ||
headers: | ||
user-agent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36" | ||
processor: "./processor.js" | ||
scenarios: | ||
- flow: | ||
- get: | ||
url: "/" | ||
afterResponse: logOutput |
19 changes: 19 additions & 0 deletions
19
packages/artillery/test/cloud-e2e/fargate/fixtures/large-output/processor.js
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
function logOutput(req, res, userContext, events, done) { | ||
for (let i = 0; i < 10; i++) { | ||
events.emit( | ||
'counter', | ||
`very.very.long.name.for.a.counter.metric.so.that.we.generate.a.lot.of.console.output.${Date.now()}${i}`, | ||
1 | ||
); | ||
events.emit( | ||
'histogram', | ||
`very.very.long.name.for.a.histogram.metric.so.that.we.generate.a.lot.of.console.output.${Date.now()}${i}`, | ||
100 | ||
); | ||
} | ||
return done(); | ||
} | ||
|
||
module.exports = { | ||
logOutput | ||
}; |
20 changes: 20 additions & 0 deletions
20
packages/artillery/test/cloud-e2e/fargate/fixtures/memory-hog/memory-hog.yml
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# 10 VUs, making 10 calls each to a function that allocates 100MB -> ~10GB total | ||
# This will fail with default configuration, which is: | ||
# - 4GB RAM given to workers on Fargate | ||
# - Node.js memory limit of 4GB | ||
|
||
config: | ||
target: http://asciiart.artillery.io:8080 | ||
phases: | ||
- arrivalRate: 1 | ||
duration: 10 | ||
processor: './processor.js' | ||
|
||
scenarios: | ||
- flow: | ||
- loop: | ||
- get: | ||
url: "/armadillo" | ||
beforeRequest: hogSomeRam | ||
- think: 1 | ||
count: 10 |
18 changes: 18 additions & 0 deletions
18
packages/artillery/test/cloud-e2e/fargate/fixtures/memory-hog/processor.js
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
let data = []; | ||
|
||
console.log('NODE_OPTIONS:'); | ||
console.log(process.env.NODE_OPTIONS); | ||
|
||
function hogSomeRam(req, context, events, next) { | ||
// Allocate 100MB | ||
data.push(Buffer.alloc(1024 * 1024 * 100, 1)); | ||
|
||
console.log(new Date(), 'allocated more data'); | ||
console.log('RSS (MB):', process.memoryUsage().rss / 1024 / 1024); | ||
|
||
return next(); | ||
} | ||
|
||
module.exports = { | ||
hogSomeRam | ||
}; |
7 changes: 7 additions & 0 deletions
7
packages/artillery/test/cloud-e2e/fargate/fixtures/mixed-hierarchy/code/functions.js
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
const bc = require('@babel/core'); | ||
const uuid = require('uuid'); | ||
const client = require('aws-sdk/clients/lambda'); | ||
|
||
module.exports = { | ||
setUrl: require('./set-url') | ||
}; |
Oops, something went wrong.