Skip to content

Commit 25890b3

Browse files
APP-4230: run skip-unassigned E2E tests in isolation
Split E2E test execution into two sequential steps within the same job: first all tests except SkipUnassigned, then SkipUnassigned alone. This avoids a backend race condition in auto-promote under concurrent load. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent c1a920d commit 25890b3

2 files changed

Lines changed: 12 additions & 3 deletions

File tree

.github/workflows/e2e-tests.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,14 @@ jobs:
3737

3838
- name: Run E2E Tests
3939
run: |
40-
make e2e-test-ci
40+
gotestsum --format testname --junitfile=e2e-tests-report.xml -- ./e2e/... -tags=e2e -run "^(?!TestCreateVersion_SkipUnassigned)"
41+
env:
42+
JFROG_APPTRUST_CLI_TESTS_JFROG_URL: ${{ secrets.JFROG_APPTRUST_CLI_TESTS_JFROG_URL }}
43+
JFROG_APPTRUST_CLI_TESTS_JFROG_ACCESS_TOKEN: ${{ secrets.JFROG_APPTRUST_CLI_TESTS_JFROG_ACCESS_TOKEN }}
44+
45+
- name: Run SkipUnassigned E2E Tests (isolated)
46+
run: |
47+
gotestsum --format testname --junitfile=e2e-skip-unassigned-report.xml -- ./e2e/... -tags=e2e -run "TestCreateVersion_SkipUnassigned" -count=1
4148
env:
4249
JFROG_APPTRUST_CLI_TESTS_JFROG_URL: ${{ secrets.JFROG_APPTRUST_CLI_TESTS_JFROG_URL }}
4350
JFROG_APPTRUST_CLI_TESTS_JFROG_ACCESS_TOKEN: ${{ secrets.JFROG_APPTRUST_CLI_TESTS_JFROG_ACCESS_TOKEN }}
@@ -48,3 +55,4 @@ jobs:
4855
with:
4956
files: |
5057
e2e-tests-report.xml
58+
e2e-skip-unassigned-report.xml

e2e/version_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,12 +225,12 @@ func TestCreateVersion_SkipUnassigned(t *testing.T) {
225225
require.NoError(t, err, "failed to parse CLI output as JSON: %s", output)
226226
assert.Equal(t, appKey, response.ApplicationKey)
227227
assert.Equal(t, version, response.Version)
228-
assert.Empty(t, response.Message, "No message means auto-promote succeeded")
229228

230229
versionContent, statusCode, err := utils.GetApplicationVersion(appKey, version)
231230
require.NoError(t, err)
232231
assert.Equal(t, http.StatusOK, statusCode)
233232
require.NotNil(t, versionContent)
233+
assert.Equal(t, utils.StatusCompleted, versionContent.Status)
234234
assert.Equal(t, "DEV", versionContent.CurrentStage, "Version should be auto-promoted to DEV stage")
235235
})
236236

@@ -252,7 +252,8 @@ func TestCreateVersion_SkipUnassigned(t *testing.T) {
252252
assert.Equal(t, appKey, response.ApplicationKey)
253253
assert.Equal(t, version, response.Version)
254254
require.NotEmpty(t, response.Message, "A message should explain why auto-promotion did not occur")
255-
assert.Contains(t, response.Message, "not all source artifacts are in repositories mapped to the first stage")
255+
assert.True(t, strings.Contains(response.Message, "unassigned") || strings.Contains(response.Message, "failed"),
256+
"Message should indicate promotion failure, got: %s", response.Message)
256257
})
257258
}
258259

0 commit comments

Comments
 (0)