Skip to content

Run Benchmarks

Run Benchmarks #17

name: Run Benchmarks
on: workflow_dispatch
permissions:
id-token: write # This is required for requesting the JWT
contents: read # This is required for actions/checkout
jobs:
benchmark:
runs-on: ubuntu-latest
strategy:
matrix:
environment: ['dev', 'prod']
steps:
- name: Git clone the repository
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Setup micromamba
uses: mamba-org/setup-micromamba@v1
with:
micromamba-version: '1.3.1-0'
environment-file: environment.yaml
init-shell: >-
bash
powershell
cache-environment: true
post-cleanup: 'all'
- name: Generate URLs for ${{ matrix.environment }}
run: |
mkdir -p urls
python gen_test_urls.py --env ${{ matrix.environment }}
shell: micromamba-shell {0}
working-directory: 03-e2e
- name: Run locust for ${{ matrix.environment }} and store results in results/
run: |
mkdir -p results
for file in urls/*; do
echo "Running tests for $file"
locust -i 5 --urls-file="$file" --csv=results/$(basename ${file%.*}) --csv-full-history
done
shell: micromamba-shell {0}
working-directory: 03-e2e
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: arn:aws:iam::444055461661:role/github-actions-role-eodc
role-session-name: samplerolesession
aws-region: us-west-2
- name: Upload results to S3
run: |
current_time=$(date +"%Y-%m-%d_%H-%M-%S")
aws s3 cp results/ s3://nasa-eodc-data-store/tile-benchmarking-results/$current_time/ --recursive
working-directory: 03-e2e