Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

backwards compatibility tests - infra + preliminary tests #1024

Merged
merged 108 commits into from
Nov 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
f88e1e3
Create backwards_compatibility_marqo_orchestrator.yml
adityabharadwaj198 Oct 10, 2024
db58494
Create backwards_compatibility_marqo_execution.yml
adityabharadwaj198 Oct 10, 2024
4d84c9b
Update backwards_compatibility_marqo_orchestrator.yml
adityabharadwaj198 Oct 10, 2024
757440b
Update backwards_compatibility_marqo_execution.yml
adityabharadwaj198 Oct 10, 2024
b1cca4b
Update backwards_compatibility_marqo_execution.yml
adityabharadwaj198 Oct 10, 2024
1a7a836
Update backwards_compatibility_marqo_execution.yml
adityabharadwaj198 Oct 10, 2024
c48c863
Update backwards_compatibility_marqo_execution.yml
adityabharadwaj198 Oct 10, 2024
56946e3
Changing secrets variables
adityabharadwaj198 Oct 11, 2024
d3bfa90
Changing from AMD to ARM
adityabharadwaj198 Oct 11, 2024
f52f088
changing from arm to amd
adityabharadwaj198 Oct 11, 2024
7175e92
Updating backwards compatibility & rollback to use Start-Runner step
adityabharadwaj198 Oct 11, 2024
216b074
Adding workflow .yml files, scripts file for tox, and base test class…
adityabharadwaj198 Oct 14, 2024
ec211a4
Echoing workflow data from trigger execution workflows
adityabharadwaj198 Oct 14, 2024
d095c21
Removing trailing whitespace from the curl command which invokes exec…
adityabharadwaj198 Oct 14, 2024
223a985
Removing whitespaces from =
adityabharadwaj198 Oct 14, 2024
245c5d8
Printing some variables
adityabharadwaj198 Oct 14, 2024
3fbfd08
Update tox.ini - defined backwards compatibility tests in envlist
adityabharadwaj198 Oct 14, 2024
1d70824
some debugging
adityabharadwaj198 Oct 14, 2024
0bee62f
making py3-docker_backwards_compatibility_tests to inherit from testenv
adityabharadwaj198 Oct 15, 2024
f5706d6
List tox environments
adityabharadwaj198 Oct 15, 2024
2ab84de
changing tox.ini file
adityabharadwaj198 Oct 15, 2024
50c5af6
Changing some more stuff
adityabharadwaj198 Oct 15, 2024
0129a27
I can fix him
adityabharadwaj198 Oct 15, 2024
093a01a
I can fix him
adityabharadwaj198 Oct 15, 2024
89e1db8
Committing compatibility test runner to view diff
adityabharadwaj198 Oct 21, 2024
6ced8f7
Committing changes so I don't lose em
adityabharadwaj198 Oct 22, 2024
eae43c5
Committing all changes - will refine later
adityabharadwaj198 Oct 25, 2024
fff1263
Merge branch 'marqo-ai:mainline' into mainline
adityabharadwaj198 Oct 25, 2024
f0f7709
Merge remote-tracking branch 'origin/mainline' into mainline
adityabharadwaj198 Oct 25, 2024
993ef0a
adding .yml file to build and push image to ecr
adityabharadwaj198 Oct 25, 2024
5c71dc7
Changed the orchestrator yaml file to call adityabharadwaj198/marqo's…
adityabharadwaj198 Oct 25, 2024
c84e513
Merge branch 'marqo-ai:mainline' into mainline
adityabharadwaj198 Oct 25, 2024
a494800
Changing secrets variable name.
adityabharadwaj198 Oct 25, 2024
7241196
Adding logic to stop EC2 runner
adityabharadwaj198 Oct 25, 2024
faca2c5
Changing github actions tag
adityabharadwaj198 Oct 25, 2024
bbabc0a
Changing how test execution happens from github actions
adityabharadwaj198 Oct 25, 2024
700b711
Changing image repo name for ECR
adityabharadwaj198 Oct 25, 2024
3757491
Added logic to push to ecr & pull from ecr. Also added logic to poll …
adityabharadwaj198 Oct 28, 2024
85abd49
Removing unnecessary logs + changing from private repo to marqo-ai/ma…
adityabharadwaj198 Oct 28, 2024
79a862f
Reverting changes to tox.ini file
adityabharadwaj198 Oct 28, 2024
7d253b2
Removing unncecessary comments and dead code
adityabharadwaj198 Oct 28, 2024
c29d483
removing debug statements
adityabharadwaj198 Oct 28, 2024
c701060
Merge branch 'mainline' into mainline
adityabharadwaj198 Oct 28, 2024
e0ec6fe
Making workflow run on mainline push?
adityabharadwaj198 Oct 28, 2024
5fc01c5
Merge remote-tracking branch 'adityabharadwaj198-origin/mainline' int…
adityabharadwaj198 Oct 28, 2024
fe324bd
Fixed the version generation logic
adityabharadwaj198 Oct 29, 2024
d712490
Changing repos back to point to adityabharadwaj198/marqo
adityabharadwaj198 Oct 29, 2024
d3267fe
Making orchestrate need poll-for-image-existence & fixing the generat…
adityabharadwaj198 Oct 29, 2024
4979c63
Updating the value of sleep time & max retries
adityabharadwaj198 Oct 29, 2024
be7c3a4
Making orchestrate need poll-for-image-existence & fixing the generat…
adityabharadwaj198 Oct 29, 2024
8269ace
Updating the value of sleep time & max retries
adityabharadwaj198 Oct 29, 2024
4274fb3
Fixing perf_tests/README.md
adityabharadwaj198 Oct 29, 2024
6492582
Fixing backwards_compatibility_marqo_execution.yml by changing needs
adityabharadwaj198 Oct 29, 2024
c929fdf
Fixing the path to compatibility_test_runner.py from backwards_compat…
adityabharadwaj198 Oct 29, 2024
9676bde
Fixing perf_tests/README.md
adityabharadwaj198 Oct 29, 2024
b632b60
Fixing the path to compatibility_test_runner.py from backwards_compat…
adityabharadwaj198 Oct 29, 2024
a6bd368
Adding a step to ls
adityabharadwaj198 Oct 29, 2024
612eb65
Adding a step to ls -la
adityabharadwaj198 Oct 29, 2024
2692e72
Adding a step to ls -lR
adityabharadwaj198 Oct 29, 2024
4a8a747
checking out adityabharadwaj198/marqo branch
adityabharadwaj198 Oct 29, 2024
07b1888
Adding logic to install requirements
adityabharadwaj198 Oct 29, 2024
5bab88b
Adding logic to install pip-tools which installs pip-compile
adityabharadwaj198 Oct 29, 2024
65293a6
Adding semver to requirements.in
adityabharadwaj198 Oct 29, 2024
d7fe526
Adding logic to make from_image & to_image as optional arguments
adityabharadwaj198 Oct 29, 2024
5ff1121
Merge branch 'marqo-ai:mainline' into mainline
adityabharadwaj198 Oct 30, 2024
8e79813
Changing how we execute test_runner.py
adityabharadwaj198 Oct 30, 2024
3beaec6
Making changes for easier debugging
adityabharadwaj198 Oct 31, 2024
eab1d9d
Changing runs on for backwards_compatibility job
adityabharadwaj198 Nov 3, 2024
ff053a3
Removing logic to resize disk
adityabharadwaj198 Nov 3, 2024
424e26a
Uncommenting things
adityabharadwaj198 Nov 3, 2024
e7d74bc
Removing step to list contents of directory and adding step to login …
adityabharadwaj198 Nov 3, 2024
b682857
better exception handling when pulling docker from ECR
adityabharadwaj198 Nov 3, 2024
37841da
Adding some debug statements and running pytest with the directory sp…
adityabharadwaj198 Nov 3, 2024
3e274f7
Merge branch 'refs/heads/aditya/compatibility-tests' into mainline
adityabharadwaj198 Nov 3, 2024
be39fd8
Merge branch 'marqo-ai:mainline' into mainline
adityabharadwaj198 Nov 3, 2024
7f75896
Added logic to run general compatibility tests that were ran pre 2.13…
adityabharadwaj198 Nov 5, 2024
bdf05cf
Removed some debugging steps, bumped up python version, and changed t…
adityabharadwaj198 Nov 6, 2024
25449c8
Moved generate_versions.py to /scripts/generate_version.py, and remov…
adityabharadwaj198 Nov 6, 2024
ec6662a
Adding logic to check image existence (in case of a prerun) and only …
adityabharadwaj198 Nov 6, 2024
5f1e168
Removing unused code etc
adityabharadwaj198 Nov 6, 2024
e24b121
Removing usage of pip-compile
adityabharadwaj198 Nov 6, 2024
0f6bd44
Added tons of documentation
adityabharadwaj198 Nov 6, 2024
10ceb06
Revision # 1 addressing reviewer comments
adityabharadwaj198 Nov 7, 2024
58f6fe5
Merge branch 'mainline' into mainline
adityabharadwaj198 Nov 7, 2024
27be7f5
Edited an unclear comment
adityabharadwaj198 Nov 7, 2024
1404ffe
Revision # 2 - Addressing comments
adityabharadwaj198 Nov 11, 2024
35ab204
Making execution workflow callable
adityabharadwaj198 Nov 11, 2024
f473cd4
Changing run-execution-workflow
adityabharadwaj198 Nov 11, 2024
8356dff
Changing some more things
adityabharadwaj198 Nov 11, 2024
422503e
Fixing
adityabharadwaj198 Nov 11, 2024
52862f2
Adding inputs to workflow_call
adityabharadwaj198 Nov 11, 2024
3684ec7
Started invoking local workflows, and changed logic to start using im…
adityabharadwaj198 Nov 11, 2024
17b0783
Added logic to do full test run, changed print to debug log statement…
adityabharadwaj198 Nov 13, 2024
740097f
Made workflow use image digest, and addressed various comments
adityabharadwaj198 Nov 15, 2024
5a9794d
Added a bunch of todos and addressed some more comments
adityabharadwaj198 Nov 17, 2024
ba59888
Added 1 more todo
adityabharadwaj198 Nov 17, 2024
1477868
Incorporating comments regarding being able to use image tag & digest…
adityabharadwaj198 Nov 18, 2024
ee1129e
Fixing small errors in compatibility_test_runner.py
adityabharadwaj198 Nov 18, 2024
1773643
Making TO_VERSION_IMAGE_IDENTIFIER into a variable $TO_VERSION_IMAGE_…
adityabharadwaj198 Nov 18, 2024
7410d5a
Set image_identifier as output of build_push_img.yml
adityabharadwaj198 Nov 18, 2024
38816b4
changed a print statement to logger.debug, removed some debugging log…
adityabharadwaj198 Nov 19, 2024
3171a45
Making it work even when image already exists
adityabharadwaj198 Nov 19, 2024
9806e6c
Fixing test cases
adityabharadwaj198 Nov 19, 2024
d36c3b4
Removed comments
adityabharadwaj198 Nov 19, 2024
e4735c7
Merge branch 'mainline' into mainline
adityabharadwaj198 Nov 20, 2024
e55c5e1
Ignoring tests/backwards_compatibility_tests folder from large model …
adityabharadwaj198 Nov 20, 2024
5e1d11e
Merge remote-tracking branch 'adityabharadwaj198-origin/mainline' int…
adityabharadwaj198 Nov 20, 2024
610e8ca
Changing how we import compatibility_test_logger
adityabharadwaj198 Nov 20, 2024
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
147 changes: 147 additions & 0 deletions .github/workflows/backwards_compatibility_marqo_execution.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
# Execution workflow
name: Marqo Compatibility Tests Execution

on:
workflow_call:
# from_version: Used as: the identifier for a workflow call, for logging purposes and for pulling image from DockerHub. We need to pass a version here: ex: 2.11.1
# to_version: Used as: the identifier for a workflow call and for logging purposes. We cannot use this to pull images from ECR or DockerHub (as opposed to from_version) since the to_version image has not been released yet. We need to pass a version here: ex: 2.11.5
# to_version_image_identifier: A unique identifier of the to_version image uploaded to ECR. Can either be the tag or the digest of the "To be released" image. This is specifically used to pull images from ECR. We need to pass a full qualified docker image name with tag or digest here, example: marqoai/marqo:abcd1234 or marqoai/marqo@sha256:1234567890abcdef resp.
inputs:
from_version:
description: 'Source Marqo version. This is calculated in backwards_compatibility_marqo_orchestrator.yml and passed to this workflow'
required: true
type: string
to_version:
description: 'Target Marqo version. This is used for logging purposes, to identify the target version of Marqo being tested and to calculate the from_versions in the backwards_compatibility_marqo_orchestrator.yml. It is NOT used to pull images from ECR.'
required: true
type: string
to_version_image_identifier:
adityabharadwaj198 marked this conversation as resolved.
Show resolved Hide resolved
description: 'To version image identifier is a unique identifier for the target Marqo image, which can either be a tag or a digest. It should contain complete qualified image name with tag or digest. For example: marqoai/marqo:abcd1234 or marqoai/marqo@sha256:1234567890abcdef. This is used to pull images from ECR.'
required: true
type: string
workflow_dispatch:
# from_version: Used as: the identifier for a workflow call, for logging purposes and for pulling image from DockerHub. We need to pass a version here: ex: 2.11.1
# to_version: Used as: the identifier for a workflow call and for logging purposes. We cannot use this to pull images from ECR or DockerHub (as opposed to from_version) since the to_version image has not been released yet. We need to pass a version here: ex: 2.11.5
# to_version_image_identifier: A unique identifier of the to_version image uploaded to ECR. Can either be the tag or the digest of the "To be released" image. This is specifically used to pull images from ECR. We need to pass a full qualified docker image name with tag or digest here, example: marqoai/marqo:abcd1234 or marqoai/marqo@sha256:1234567890abcdef resp.

# If running manually, just specify the from_version, to_version and the fully qualified marqo image name with tag or digest in same format of the examples given above
inputs:
from_version:
description: 'Source Marqo version. This is used to pull the image from DockerHub and for logging purposes.'
required: true
type: string
to_version:
description: 'Target Marqo version. This is used for logging purposes and to identify the target version of Marqo being tested.'
required: true
type: string
to_version_image_identifier:
description: 'To version image identifier is a unique identifier for the target Marqo image, which can either be a tag or a digest. It should contain complete qualified image name with tag or digest. For example: marqoai/marqo:abcd1234 or marqoai/marqo@sha256:1234567890abcdef. This is used to pull images from ECR.'
required: true
type: string

jobs:
Start-Runner:
permissions: write-all
name: Start self-hosted EC2 runner
runs-on: ubuntu-latest
outputs:
label: ${{ steps.start-ec2-runner.outputs.label }}
ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }}
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.MARQO_WORKFLOW_TESTS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.MARQO_WORKFLOW_TESTS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Start EC2 runner
id: start-ec2-runner
uses: machulav/ec2-github-runner@v2
with:
mode: start
github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
ec2-image-id: ${{ secrets.MARQO_CPU_AMD64_TESTS_INSTANCE_AMI }}
ec2-instance-type: m6i.xlarge
subnet-id: ${{ secrets.MARQO_WORKFLOW_TESTS_SUBNET_ID }}
security-group-id: ${{ secrets.MARQO_WORKFLOW_TESTS_SECURITY_GROUP_ID }}
aws-resource-tags: > # optional, requires additional permissions
[
{"Key": "Name", "Value": "marqo-compatibility-test-runner-${{ github.run_id }}"},
{"Key": "GitHubRepo", "Value": "${{ github.repository }}"},
{"Key": "WorkflowName", "Value": "${{ github.workflow }}"},
{"Key": "WorkflowRunId", "Value": "${{ github.run_id }}"},
{"Key": "WorlflowURL", "Value": "${{ github.event.repository.html_url }}/actions/runs/${{ github.run_id }}"},
{"Key": "PoloRole", "Value": "testing"}
]

backwards_compatibility:
# This job runs on the newly created runner
runs-on: ${{ needs.start-runner.outputs.label }}
needs: Start-Runner
steps:
# Step to check out the Marqo repository
- name: checkout marqo repo
uses: actions/checkout@v3
with:
repository: ${{ github.repository }} #Check out the repository that contains this action since the tests exist in the same repository
fetch-depth: 0

# Step to set up Python 3.9
- name: Set up Python 3.9
uses: actions/setup-python@v3
with:
python-version: "3.9"
cache: "pip"
# Step to install dependencies from requirements.txt
- name: Install Dependencies
run: |
pip install -r tests/backwards_compatibility_tests/requirements.txt

# Step to configure AWS credentials
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.ECR_PUSHER_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.ECR_PUSHER_AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1

# Step to login to Amazon ECR
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2

# Step to run the backwards compatibility test
- name: Run backwards_compatibility test
env:
FROM_VERSION: ${{ inputs.from_version || github.event.inputs.from_version }}
TO_VERSION: ${{ inputs.to_version || github.event.inputs.to_version }}
TO_VERSION_IMAGE_IDENTIFIER: ${{ inputs.to_version_image_identifier || github.event.inputs.to_version_image_identifier }}
run: |
export PYTHONPATH=${{ github.workspace }}:$PYTHONPATH
python tests/backwards_compatibility_tests/compatibility_test_runner.py \
--mode=backwards_compatibility \
--from_version "$FROM_VERSION" \
--to_version "$TO_VERSION" \
--to_version_image_identifier "$TO_VERSION_IMAGE_IDENTIFIER" \

Stop-Runner:
name: Stop self-hosted EC2 runner
needs:
- Start-Runner # required to get output from the start-runner job
- backwards_compatibility # required to wait when the main job is done
runs-on: ubuntu-latest
if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.MARQO_WORKFLOW_TESTS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.MARQO_WORKFLOW_TESTS_SECRET_ACCESS_KEY }}
aws-region: us-east-1
- name: Stop EC2 runner
uses: machulav/ec2-github-runner@v2
with:
mode: stop
github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }}
label: ${{ needs.start-runner.outputs.label }}
ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }}
154 changes: 154 additions & 0 deletions .github/workflows/backwards_compatibility_marqo_orchestrator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
# Orchestrator workflow
name: Marqo Compatibility Tests Orchestrator

on:
push:
branches:
- mainline
paths-ignore:
- '**.md'
workflow_dispatch:
inputs:
to_version:
description: 'Target Marqo version'
required: true
max_versions_to_test:
description: 'Max versions to test'
required: false
#TODO: Add input for specifying py_marqo branch (https://github.com/marqo-ai/marqo/pull/1024#discussion_r1841556872)

# Setting MAX_VERSIONS_TO_TEST, this can be a configurable value or if no input is provided, it can be a default value.
env:
MAX_VERSIONS_TO_TEST: ${{ github.event.inputs.max_versions_to_test || 3 }}

jobs:
check-if-image-exists:
# Responsible for deciding if we should invoke build_push_img.yml GitHub actions workflow in the same repo.
# We do not want to build and push the image if it already exists in the ECR registry, which will be the case if this is a manual developer initiated re-run using the same commit.
name: Check if image already exists in ECR
runs-on: ubuntu-latest
environment: marqo-test-suite
outputs:
image_exists: ${{ steps.check-image.outputs.image_exists }}
image_identifier: ${{ steps.check-image.outputs.image_identifier }}
steps:
- name: Checkout marqo repo
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.ECR_PUSHER_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.ECR_PUSHER_AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1

# step to check for image existence - it uses aws cli to check if the image exists in the ECR registry "marqo-compatibility-tests"
- name: Check image existence and get identifier
id: check-image
run: |
echo "Checking for image existence"
if IMAGE_DETAILS=$(aws ecr describe-images --repository-name marqo-compatibility-tests --image-ids imageTag=${{ github.sha }} 2>/dev/null); then
echo "image_exists=true" >> $GITHUB_OUTPUT
echo "Image already exists in ECR, will not build and push again. Will be using the image digest from existing image"

IMAGE_IDENTIFIER=$(echo "$IMAGE_DETAILS" | jq -r '.imageDetails[0].imageDigest')
REGISTRY_ID = "424082663841.dkr.ecr.us-east-1.amazonaws.com"
FULL_IDENTIFIER="${REGISTRY_ID}/marqo-compatibility-tests@${IMAGE_IDENTIFIER}"
echo "image_identifier=${FULL_IDENTIFIER}" >> $GITHUB_OUTPUT
else
echo "image_exists=false" >> $GITHUB_OUTPUT
echo "Image doesn't exist"
fi

build-and-push-image:
# Job to actually build and push image to ECR registry. This job is only triggered if the image does not already exist in the ECR registry.
name: Build and Push Image
needs: check-if-image-exists
if: needs.check-if-image-exists.outputs.image_exists == 'false'
uses: ./.github/workflows/build_push_img.yml
secrets: inherit
with:
marqo_ref: "${{ github.sha }}"
push_to: "ECR"
image_repo: "marqo-compatibility-tests"
image_tag: "${{ github.sha }}"


orchestrate:
# Job to orchestrate backwards compatibility test execution. Majorly responsible for determining to_version and for generating the list of from_version(s) to test against.
name: Orchestrate backwards compatibility test execution
runs-on: ubuntu-latest
needs: [check-if-image-exists, build-and-push-image]
if: always () && (needs.check-if-image-exists.result == 'success')
outputs:
list: ${{ steps.generate-versions.outputs.list }}
to_version: ${{ steps.get-to-version.outputs.to_version }}
environment: marqo-test-suite
steps:
# Step to check out the Marqo repository
- name: Checkout marqo repo
uses: actions/checkout@v3
with:
fetch-depth: 0

# Step to set up Python 3.9
- name: Set up Python 3.9
uses: actions/setup-python@v3
with:
python-version: '3.9'
cache: "pip"

# Step to install the semver package
- name: Install semver
run: |
pip install semver

# Step to determine the target version
- name: Determine to_version
id: get-to-version
run: |
if [ "${{ github.event_name }}" == "workflow_dispatch" ] && [ -n "${{ github.event.inputs.to_version }}" ]; then
VERSION="${{ github.event.inputs.to_version }}"
else
VERSION=$(python tests/backwards_compatibility_tests/scripts/determine_to_version.py ${{ github.sha }})
fi
echo "to_version=${VERSION}" >> $GITHUB_OUTPUT
# Step to generate the list of versions to test
- name: Generate version list #this code block just generates the from_version list and stores it in a versions variable as a list
id: generate-versions
run: |
# Run the Python script and capture its output
VERSION_LIST=$(python tests/backwards_compatibility_tests/scripts/generate_versions.py ${{ steps.get-to-version.outputs.to_version }} ${{ env.MAX_VERSIONS_TO_TEST }})
echo "list=${VERSION_LIST}" >> $GITHUB_OUTPUT
# Step to display the versions to test
- name: display versions
run: |
echo "Versions to test: ${{ steps.generate-versions.outputs.list }} against to_version: ${{ steps.get-to-version.outputs.to_version }}"

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.ECR_PUSHER_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.ECR_PUSHER_AWS_SECRET_ACCESS_KEY }}
aws-region: us-east-1

run-execution-workflow:
# Job to trigger execution workflows for each version combination
name: Run all execution workflows
needs: [orchestrate, check-if-image-exists, build-and-push-image]
if: always() && (needs.orchestrate.result == 'success')
strategy:
matrix:
from_version: ${{ fromJson(needs.orchestrate.outputs.list) }}
uses: ./.github/workflows/backwards_compatibility_marqo_execution.yml
secrets: inherit
with:
from_version: ${{ matrix.from_version }}
to_version: ${{ needs.orchestrate.outputs.to_version }}
# Pass the image_identifier to the execution workflow. By image_identifier, we refer to the
# complete qualified image name with the image digest (i.e 424082663841.dkr.ecr.us-east-1.amazonaws.com/marqo-compatibility-tests@sha256:1234567890abcdef).
# The image_identifier can either come from the check-if-image-exists (i.e in case the image already exists in ECR) job or the build-and-push-image (i.e in case the image was built and pushed to ECR) job.
to_version_image_identifier: ${{ needs.check-if-image-exists.outputs.image_exists == 'true' && needs.check-if-image-exists.outputs.image_identifier
|| needs.build-and-push-image.outputs.image_identifier }}
Loading
Loading