Skip to content

Commit

Permalink
Merge branch 'master' into feature/more-resiliency-metrics
Browse files Browse the repository at this point in the history
  • Loading branch information
jake-engelberg authored Sep 23, 2024
2 parents 142c422 + 8b7020a commit 8fd4e1f
Show file tree
Hide file tree
Showing 3 changed files with 111 additions and 2 deletions.
55 changes: 55 additions & 0 deletions .github/scripts/compare_versions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#
# Copyright 2024 The Dapr Authors
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# http://www.apache.org/licenses/LICENSE-2.0
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# This script parses release version from Git tag and set the parsed version to
# environment variable, REL_VERSION. If the tag is the final version, it sets
# LATEST_RELEASE to true to add 'latest' tag to docker image.

import os
import sys
from packaging.version import Version, InvalidVersion

# compare_versions returns True if the comparison is successful.
# It returns False if the versions are invalid.
# The result of the comparison is written to the VERSION_UPDATE_REQUIRED GitHub environment variable.
def compare_versions(new_version, existing_version) -> bool:
try:
new_ver = Version(new_version)
existing_ver = Version(existing_version)
except InvalidVersion:
print("Invalid version format")
return False

update_required = new_ver > existing_ver
status_message = "New version is greater than existing version." if update_required else "New version is not greater. Skipping update."
print(status_message)

# Write the update requirement status to GITHUB_ENV
github_env_path = os.getenv("GITHUB_ENV")
if github_env_path:
with open(github_env_path, "a") as github_env:
github_env.write(f"VERSION_UPDATE_REQUIRED={str(update_required).lower()}\n")

return True

if len(sys.argv) != 3:
print("Usage: compare_versions.py <new_version> <existing_version>")
sys.exit(1)

new_version = sys.argv[1]
existing_version = sys.argv[2]

if compare_versions(new_version, existing_version):
sys.exit(0)
else:
sys.exit(1)
54 changes: 54 additions & 0 deletions .github/workflows/dapr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -690,3 +690,57 @@ jobs:
echo "::error::There is no change for ${daprVersion} Helm chart. Did you forget to update the chart version before tagging?"
exit -1
fi
update-longhauls:
name: Update the dapr version in long haul tests
needs: helmpublish
runs-on: ubuntu-latest
if: startswith(github.ref, 'refs/tags/v') && github.repository_owner == 'dapr'
env:
LONG_HAUL_REPO: test-infra
steps:
- name: Get Token
id: get_workflow_token
uses: actions/create-github-app-token@v1
with:
app-id: ${{ secrets.APPLICATION_ID }}
private-key: ${{ secrets.APPLICATION_PRIVATE_KEY }}
repositories: ${{ env.LONG_HAUL_REPO }}
- name: Check out code into the Go module directory
uses: actions/checkout@v4
with:
path: dapr
- name: Checkout the longhaul tests repo
uses: actions/checkout@v4
with:
repository: dapr/${{ env.LONG_HAUL_REPO }}
token: ${{ steps.get_workflow_token.outputs.token }}
path: ${{ env.LONG_HAUL_REPO }}
- name: Install Python Dependencies
run: |
pip install packaging
- name: Parse release version and set REL_VERSION and LATEST_RELEASE
run: python dapr/.github/scripts/get_release_version.py ${{ github.event_name }}

- name: Compare versions and determine if update of long haul tests is required
id: compare_versions
run: |
EXISTING_VERSION=$(cat "${{ env.LONG_HAUL_REPO }}/config/dapr_runtime.version")
echo "Existing version in long haul tests: $EXISTING_VERSION"
echo "New version: ${{ env.REL_VERSION }}"
python dapr/.github/scripts/compare_versions.py "${{ env.REL_VERSION }}" "$EXISTING_VERSION"
- name: Update dapr runtime version in the long haul tests repo
if: env.VERSION_UPDATE_REQUIRED == 'true'
run: |
echo "${REL_VERSION}" > ${{ env.LONG_HAUL_REPO }}/config/dapr_runtime.version
- name: Commit and Push Changes to repoB
if: env.VERSION_UPDATE_REQUIRED == 'true'
run: |
cd ${{ env.LONG_HAUL_REPO }}
git config --global user.name "github-actions"
git config --global user.email "[email protected]"
git add config/dapr_runtime.version
git commit -m "Updates dapr runtime version to ${REL_VERSION}"
git push
4 changes: 2 additions & 2 deletions tests/perf/actor_reminder/actor_reminder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ const (

// Target for the QPS - Temporary
targetQPS float64 = 33
targetSchedulerQPS float64 = 3000
targetSchedulerQPS float64 = 2900

// Target for the QPS to trigger reminders.
targetTriggerQPS float64 = 1000
Expand Down Expand Up @@ -296,7 +296,7 @@ func TestActorReminderSchedulerRegistrationPerformance(t *testing.T) {
assert.Equal(t, 0, daprResult.RetCodes.Num400)
assert.Equal(t, 0, daprResult.RetCodes.Num500)
assert.Equal(t, 0, restarts)
assert.InDelta(t, targetSchedulerQPS, daprResult.ActualQPS, 5)
assert.InDelta(t, targetSchedulerQPS, daprResult.ActualQPS, 10)
}

type actorReminderRequest struct {
Expand Down

0 comments on commit 8fd4e1f

Please sign in to comment.