From 82202f3c847ab008a5c88c4d63c273fc4c075de0 Mon Sep 17 00:00:00 2001 From: agrasth Date: Tue, 9 Dec 2025 15:57:05 +0530 Subject: [PATCH 1/6] fix: use local Artifactory for lifecycle tests to prevent project quota issues ## Problem Lifecycle tests were failing with 'Cannot create project, Max number of projects is reached' because they used a shared remote platform that accumulated orphaned test projects from failed test runs. ## Solution Switch lifecycle tests to use local Artifactory installation, matching the pattern used by all other test suites. ## Changes - Use jfrog/.github/actions/install-local-artifactory@main - Connect to http://127.0.0.1:8082 instead of secrets.PLATFORM_URL - Use auto-generated JFROG_TESTS_LOCAL_ACCESS_TOKEN - Add macOS skip logic (JGC-413) - Explicit OS version matrix for consistency - Fix syntax error in deleteProjectIfExists: t.Error(t, err) -> t.Error(err) ## Benefits - No shared state between test runs - No manual cleanup required - Better test isolation - Consistent with other test workflows - Each test run gets fresh Artifactory instance --- .github/workflows/lifecycleTests.yml | 30 ++++++++++++++++++++++++---- artifactory_test.go | 2 +- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/.github/workflows/lifecycleTests.yml b/.github/workflows/lifecycleTests.yml index 955dfd7ce..e7e20a979 100644 --- a/.github/workflows/lifecycleTests.yml +++ b/.github/workflows/lifecycleTests.yml @@ -18,21 +18,43 @@ concurrency: cancel-in-progress: true jobs: Lifecycle-Tests: - name: Lifecycle tests (${{ matrix.os }}) + name: Lifecycle tests (${{ matrix.os.name }}) if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'safe to test') strategy: fail-fast: false matrix: - os: [ubuntu, windows, macos] - runs-on: ${{ matrix.os }}-latest + os: + - name: ubuntu + version: 24.04 + - name: windows + version: 2022 + - name: macos + version: 14 + runs-on: ${{ matrix.os.name }}-${{ matrix.os.version }} steps: + - name: Skip macOS - JGC-413 + if: matrix.os.name == 'macos' + run: | + echo "::warning::JGC-413 - Skip until artifactory bootstrap in osx is fixed" + exit 0 + - name: Checkout code + if: matrix.os.name != 'macos' uses: actions/checkout@v5 with: ref: ${{ github.event.pull_request.head.sha || github.ref }} - name: Setup Go with cache + if: matrix.os.name != 'macos' uses: jfrog/.github/actions/install-go-with-cache@main + - name: Install local Artifactory + if: matrix.os.name != 'macos' + uses: jfrog/.github/actions/install-local-artifactory@main + with: + RTLIC: ${{ secrets.RTLIC }} + RT_CONNECTION_TIMEOUT_SECONDS: ${{ env.RT_CONNECTION_TIMEOUT_SECONDS || '1200' }} + - name: Run Lifecycle tests - run: go test -v github.com/jfrog/jfrog-cli --timeout 0 --test.lifecycle --jfrog.url=${{ secrets.PLATFORM_URL }} --jfrog.adminToken=${{ secrets.PLATFORM_ADMIN_TOKEN }} --jfrog.user=${{ secrets.PLATFORM_USER }} --ci.runId=${{ runner.os }}-lifecycle + if: matrix.os.name != 'macos' + run: go test -v github.com/jfrog/jfrog-cli --timeout 0 --test.lifecycle --jfrog.url=http://127.0.0.1:8082 --jfrog.adminToken=${{ env.JFROG_TESTS_LOCAL_ACCESS_TOKEN }} --ci.runId=${{ runner.os }}-lifecycle diff --git a/artifactory_test.go b/artifactory_test.go index 8be891ecf..7f87e7586 100644 --- a/artifactory_test.go +++ b/artifactory_test.go @@ -6492,7 +6492,7 @@ func deleteProjectIfExists(t *testing.T, accessManager *access.AccessServicesMan err := accessManager.DeleteProject(projectKey) if err != nil { if !strings.Contains(err.Error(), "Could not find project") { - t.Error(t, err) + t.Error(err) } } } From 4da2d30a650695213da25991be11976f34685890 Mon Sep 17 00:00:00 2001 From: Agrasth Naman Date: Tue, 9 Dec 2025 16:49:47 +0530 Subject: [PATCH 2/6] Add branch to trigger workflow on push events --- .github/workflows/scriptTests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/scriptTests.yml b/.github/workflows/scriptTests.yml index 0596dbf4c..80d99f023 100644 --- a/.github/workflows/scriptTests.yml +++ b/.github/workflows/scriptTests.yml @@ -4,6 +4,7 @@ on: push: branches: - "master" + - "fix/lifecycle-tests-local-artifactory" # Triggers the workflow on PRs to master branch only. pull_request_target: types: [labeled] From 9ca741b2e5a0fef02f38a404e9769d29a04d83ab Mon Sep 17 00:00:00 2001 From: Agrasth Naman Date: Tue, 9 Dec 2025 17:02:29 +0530 Subject: [PATCH 3/6] Update scriptTests.yml to modify push branches --- .github/workflows/scriptTests.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/scriptTests.yml b/.github/workflows/scriptTests.yml index 80d99f023..0596dbf4c 100644 --- a/.github/workflows/scriptTests.yml +++ b/.github/workflows/scriptTests.yml @@ -4,7 +4,6 @@ on: push: branches: - "master" - - "fix/lifecycle-tests-local-artifactory" # Triggers the workflow on PRs to master branch only. pull_request_target: types: [labeled] From b90ac6df6c94ffbad7a088fcc57a9373a12cd94b Mon Sep 17 00:00:00 2001 From: agrasth Date: Tue, 9 Dec 2025 12:25:20 +0530 Subject: [PATCH 4/6] fix: use local Artifactory for lifecycle tests to prevent project quota issues - Switch lifecycle tests from remote platform to local Artifactory installation - Aligns with pattern used by all other test suites (artifactory, transfer, access, etc.) - Fixes syntax error in deleteProjectIfExists (t.Error(t, err) -> t.Error(err)) - Each test run gets fresh Artifactory instance, eliminating project accumulation - Resolves 'Cannot create project, Max number of projects is reached' errors Changes: - Use jfrog/.github/actions/install-local-artifactory@main - Connect to http://127.0.0.1:8082 instead of secrets.PLATFORM_URL - Use auto-generated JFROG_TESTS_LOCAL_ACCESS_TOKEN - Add macOS skip logic (JGC-413) - Explicit OS version matrix for consistency Benefits: - No shared state between test runs - No manual cleanup required - Better test isolation - Consistent with other test workflows --- .github/workflows/lifecycleTests.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/lifecycleTests.yml b/.github/workflows/lifecycleTests.yml index e7e20a979..e9b66c767 100644 --- a/.github/workflows/lifecycleTests.yml +++ b/.github/workflows/lifecycleTests.yml @@ -48,6 +48,20 @@ jobs: if: matrix.os.name != 'macos' uses: jfrog/.github/actions/install-go-with-cache@main + - name: Debug macOS Environment and Set Timeout + if: runner.os == 'macOS' + run: | + echo "=== macOS Debug Information ===" + echo "Architecture: $(uname -m)" + echo "macOS Version: $(sw_vers -productVersion)" + echo "macOS Build: $(sw_vers -buildVersion)" + echo "Available memory: $(system_profiler SPHardwareDataType | grep Memory || echo 'Memory info not available')" + echo "Available disk space: $(df -h)" + echo "Java version: $(java -version 2>&1 || echo 'Java not found')" + echo "Go version: $(go version)" + echo "Setting RT_CONNECTION_TIMEOUT_SECONDS to 2400 for macOS" + echo "RT_CONNECTION_TIMEOUT_SECONDS=2400" >> $GITHUB_ENV + - name: Install local Artifactory if: matrix.os.name != 'macos' uses: jfrog/.github/actions/install-local-artifactory@main From 497e7fe510fe15733b018435e7327b9b45ed3845 Mon Sep 17 00:00:00 2001 From: agrasth Date: Wed, 10 Dec 2025 03:19:06 +0530 Subject: [PATCH 5/6] chore: retrigger GitHub Actions checks From b49c4ac5a7085b051594a91cbf817fb953165271 Mon Sep 17 00:00:00 2001 From: agrasth Date: Wed, 10 Dec 2025 03:19:33 +0530 Subject: [PATCH 6/6] chore: retrigger GitHub Actions checks