From 693eb7029394091507b053c5e51c96cc861e6b4d Mon Sep 17 00:00:00 2001 From: Ryan Colson Date: Thu, 18 Sep 2025 21:14:01 -0700 Subject: [PATCH 1/4] update composer dependencies --- composer.json | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index 5a531531..4313d1ee 100644 --- a/composer.json +++ b/composer.json @@ -24,12 +24,13 @@ } ], "require": { - "guzzlehttp/guzzle": "^6.5|^7.0", - "illuminate/macroable": "^9.35|^10.1|^11.0", - "illuminate/support": "^9.35|^10.1|^11.0", + "php": "^8.2|^8.3|^8.4|^8.5", + "guzzlehttp/guzzle": "^7.0", + "illuminate/macroable": "^11.0|^12.0", + "illuminate/support": "^11.0|^12.0", "ratchet/pawl": "^0.4.1", - "symfony/process": "^5.4|^6.0|^7.0", - "vierbergenlars/php-semver": "^2.1|^3.0" + "symfony/process": "^6.0|^7.0", + "vierbergenlars/php-semver": "^3.0" }, "suggest": { "ext-yaml": "YAML extension is used to read or generate YAML from PHP K8s internal classes." @@ -48,13 +49,13 @@ "test": "vendor/bin/phpunit" }, "require-dev": { - "mockery/mockery": "^1.5", - "orchestra/testbench": "^7.23|^8.1|^9.0", - "phpunit/phpunit": "^9.5.20|^10.0", - "vimeo/psalm": "^4.20|^5.22" + "mockery/mockery": "^1.6", + "orchestra/testbench": "^9.0|^10.0", + "phpunit/phpunit": "^10.5|^11.0" }, "config": { "sort-packages": true }, - "minimum-stability": "dev" + "minimum-stability": "dev", + "prefer-stable": true } From 4d9e74813de9e8365f8d7848abb604fa8db35f90 Mon Sep 17 00:00:00 2001 From: Ryan Colson Date: Thu, 18 Sep 2025 21:14:54 -0700 Subject: [PATCH 2/4] test against all actively supported versions --- .github/workflows/ci.yml | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5ede26cf..e0716cd9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,25 +21,15 @@ jobs: strategy: fail-fast: false matrix: - php: ['8.1', '8.2'] - kubernetes: ['1.24.12', '1.25.8', '1.26.3'] - laravel: ['9.*', '10.*', '11.*'] + php: [8.2, 8.3, 8.4] + kubernetes: [1.32, 1.33, 1.34] + laravel: [11, 12] prefer: [prefer-lowest, prefer-stable] - include: - - laravel: "9.*" - testbench: "7.*" - - laravel: "10.*" - testbench: "8.*" - - laravel: "11.*" - testbench: "9.*" - exclude: - - laravel: "11.*" - php: "8.1" name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} - K8s v${{ matrix.kubernetes }} --${{ matrix.prefer }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -48,7 +38,7 @@ jobs: extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, yaml coverage: pcov - - uses: actions/cache@v3.0.5 + - uses: actions/cache@v4 name: Cache dependencies with: path: ~/.composer/cache/files @@ -71,12 +61,18 @@ jobs: composer update --${{ matrix.prefer }} --prefer-dist --no-interaction - name: Setup in-cluster config + env: + TEST_TOKEN: some-token + TEST_CERT: c29tZS1jZXJ0Cg== + TEST_NAMESPACE: some-namespace run: | sudo mkdir -p /var/run/secrets/kubernetes.io/serviceaccount - echo "some-token" | sudo tee /var/run/secrets/kubernetes.io/serviceaccount/token - echo "c29tZS1jZXJ0Cg==" | sudo tee /var/run/secrets/kubernetes.io/serviceaccount/ca.crt - echo "some-namespace" | sudo tee /var/run/secrets/kubernetes.io/serviceaccount/namespace - sudo chmod -R 777 /var/run/secrets/kubernetes.io/serviceaccount/ + echo "$TEST_TOKEN" | sudo tee /var/run/secrets/kubernetes.io/serviceaccount/token + echo "$TEST_CERT" | sudo tee /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + echo "$TEST_NAMESPACE" | sudo tee /var/run/secrets/kubernetes.io/serviceaccount/namespace + sudo chmod 644 /var/run/secrets/kubernetes.io/serviceaccount/token + sudo chmod 644 /var/run/secrets/kubernetes.io/serviceaccount/ca.crt + sudo chmod 644 /var/run/secrets/kubernetes.io/serviceaccount/namespace - name: Setting CRDs for testing run: | @@ -86,6 +82,6 @@ jobs: run: | vendor/bin/phpunit --coverage-text --coverage-clover=coverage.xml - - uses: codecov/codecov-action@v3.1.0 + - uses: codecov/codecov-action@v4 with: fail_ci_if_error: false From 6052973fea93b8fa0b114d68dffaee203b86bc29 Mon Sep 17 00:00:00 2001 From: Ryan Colson Date: Thu, 18 Sep 2025 21:15:34 -0700 Subject: [PATCH 3/4] static dataproviders are required --- .github/workflows/ci.yml | 7 +++---- tests/KubeConfigTest.php | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e0716cd9..a7c2afb5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: fail-fast: false matrix: php: [8.2, 8.3, 8.4] - kubernetes: [1.32, 1.33, 1.34] + kubernetes: [1.32.9, 1.33.5, 1.34.1] laravel: [11, 12] prefer: [prefer-lowest, prefer-stable] @@ -47,7 +47,7 @@ jobs: - uses: medyagh/setup-minikube@latest name: Setup Minikube with: - minikube-version: 1.29.0 + minikube-version: 1.37.0 container-runtime: containerd kubernetes-version: v${{ matrix.kubernetes }} @@ -57,8 +57,7 @@ jobs: - name: Install dependencies run: | - composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update - composer update --${{ matrix.prefer }} --prefer-dist --no-interaction + composer require "laravel/framework:^${{ matrix.laravel }}.0" --dev "orchestra/testbench" --no-interaction --${{ matrix.prefer }} --prefer-dist - name: Setup in-cluster config env: diff --git a/tests/KubeConfigTest.php b/tests/KubeConfigTest.php index 82a657ec..1c442102 100644 --- a/tests/KubeConfigTest.php +++ b/tests/KubeConfigTest.php @@ -220,7 +220,7 @@ public function test_from_environment_variable(string $context = null, string $e $this->assertSame("https://{$expectedDomain}:8443/?", $cluster->getCallableUrl('/', [])); } - public function environmentVariableContextProvider(): iterable + public static function environmentVariableContextProvider(): iterable { yield [null, 'minikube']; yield ['minikube-2', 'minikube-2']; From 497740d13a3150fc23f549786cd8d6c7efe3febc Mon Sep 17 00:00:00 2001 From: Ryan Colson Date: Fri, 19 Sep 2025 13:30:41 -0700 Subject: [PATCH 4/4] fix phpunit deprecations & warnings --- .gitignore | 2 +- phpunit.xml | 35 +++++++++++++++++++++-------------- psalm.xml | 18 ------------------ tests/KubeConfigTest.php | 7 +++---- 4 files changed, 25 insertions(+), 37 deletions(-) delete mode 100644 psalm.xml diff --git a/.gitignore b/.gitignore index 93dbbb09..bb1f1b91 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,4 @@ composer.phar composer.lock .DS_Store .idea/ -.phpunit.result.cache \ No newline at end of file +.phpunit.cache diff --git a/phpunit.xml b/phpunit.xml index ef9baef1..9a5eb214 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -1,16 +1,23 @@ - - - - src/ - - - - - tests - - - - - + + + + tests + + + + + + + + + + src + + diff --git a/psalm.xml b/psalm.xml deleted file mode 100644 index b7d600f6..00000000 --- a/psalm.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - diff --git a/tests/KubeConfigTest.php b/tests/KubeConfigTest.php index 1c442102..e2bff3aa 100644 --- a/tests/KubeConfigTest.php +++ b/tests/KubeConfigTest.php @@ -2,6 +2,7 @@ namespace RenokiCo\PhpK8s\Test; +use PHPUnit\Framework\Attributes\DataProvider; use RenokiCo\PhpK8s\Exceptions\KubeConfigBaseEncodedDataInvalid; use RenokiCo\PhpK8s\Exceptions\KubeConfigClusterNotFound; use RenokiCo\PhpK8s\Exceptions\KubeConfigContextNotFound; @@ -208,10 +209,8 @@ public function test_in_cluster_config() K8sResource::setDefaultNamespace('default'); } - /** - * @dataProvider environmentVariableContextProvider - */ - public function test_from_environment_variable(string $context = null, string $expectedDomain) + #[DataProvider('environmentVariableContextProvider')] + public function test_from_environment_variable(?string $context, string $expectedDomain) { $_SERVER['KUBECONFIG'] = __DIR__.'/cluster/kubeconfig.yaml::'.__DIR__.'/cluster/kubeconfig-2.yaml';