Skip to content

Laravel 11.x Compatibility #402

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

Merged
merged 2 commits into from
Mar 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
133 changes: 63 additions & 70 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,96 +3,89 @@ name: CI
on:
push:
branches:
- '*'
- *
tags:
- '*'
- *
pull_request:
branches:
- '*'
- *

jobs:
build:
if: "!contains(github.event.head_commit.message, 'skip ci')"

runs-on: ubuntu-latest

timeout-minutes: 15

strategy:
fail-fast: false
matrix:
php:
- '8.1'
- '8.2'
kubernetes:
- '1.24.12'
- '1.25.8'
- '1.26.3'
laravel:
- 9.*
- 10.*
prefer:
- 'prefer-lowest'
- 'prefer-stable'
php: ['8.1', '8.2']
kubernetes: [1.24.12, 1.25.8, 1.26.3]
laravel: ['9.*', '10.*', '11.*']
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

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, yaml
coverage: pcov

- uses: actions/[email protected]
name: Cache dependencies
with:
path: ~/.composer/cache/files
key: composer-php-${{ matrix.php }}-${{ matrix.laravel }}-${{ matrix.prefer }}-${{ hashFiles('composer.json') }}

- uses: medyagh/setup-minikube@latest
name: Setup Minikube
with:
minikube-version: 1.29.0
container-runtime: containerd
kubernetes-version: "v${{ matrix.kubernetes }}"

- name: Run Kubernetes Proxy
run: |
kubectl proxy --port=8080 --reject-paths="^/non-existent-path" &

- 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

- name: Setup in-cluster config
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/

- name: Setting CRDs for testing
run: |
kubectl apply -f https://raw.githubusercontent.com/bitnami-labs/sealed-secrets/main/helm/sealed-secrets/crds/bitnami.com_sealedsecrets.yaml

# - name: Run static analysis
# run: |
# vendor/bin/psalm

- name: Run tests
run: |
vendor/bin/phpunit --coverage-text --coverage-clover=coverage.xml

- uses: codecov/[email protected]
with:
fail_ci_if_error: false
- uses: actions/checkout@v3

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, yaml
coverage: pcov

- uses: actions/[email protected]
name: Cache dependencies
with:
path: ~/.composer/cache/files
key: composer-php-${{ matrix.php }}-${{ matrix.laravel }}-${{ matrix.prefer }}-${{ hashFiles('composer.json') }}

- uses: medyagh/setup-minikube@latest
name: Setup Minikube
with:
minikube-version: 1.29.0
container-runtime: containerd
kubernetes-version: v${{ matrix.kubernetes }}

- name: Run Kubernetes Proxy
run: |
kubectl proxy --port=8080 --reject-paths="^/non-existent-path" &

- 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

- name: Setup in-cluster config
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/

- name: Setting CRDs for testing
run: |
kubectl apply -f https://raw.githubusercontent.com/bitnami-labs/sealed-secrets/main/helm/sealed-secrets/crds/bitnami.com_sealedsecrets.yaml

- name: Run tests
run: |
vendor/bin/phpunit --coverage-text --coverage-clover=coverage.xml

- uses: codecov/[email protected]
with:
fail_ci_if_error: false
20 changes: 16 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,19 @@
{
"name": "renoki-co/php-k8s",
"description": "Control your Kubernetes clusters with this PHP-based Kubernetes client. It supports any form of authentication, the exec API, and it has an easy implementation for CRDs.",
"keywords": ["laravel", "php", "kubernetes", "k8s", "k3s", "k0s", "cluster", "api", "kubeadm", "kubeapi", "kube"],
"keywords": [
"laravel",
"php",
"kubernetes",
"k8s",
"k3s",
"k0s",
"cluster",
"api",
"kubeadm",
"kubeapi",
"kube"
],
"license": "Apache-2.0",
"homepage": "https://github.com/renoki-co/php-k8s",
"authors": [
Expand All @@ -14,7 +26,7 @@
"require": {
"guzzlehttp/guzzle": "^6.5|^7.0",
"illuminate/macroable": "^9.35|^10.1",
"illuminate/support": "^9.35|^10.1",
"illuminate/support": "^9.35|^10.1|^11.0",
"ratchet/pawl": "^0.4.1",
"symfony/process": "^5.4|^6.0",
"vierbergenlars/php-semver": "^2.1|^3.0"
Expand All @@ -37,9 +49,9 @@
},
"require-dev": {
"mockery/mockery": "^1.5",
"orchestra/testbench": "^7.23|^8.1",
"orchestra/testbench": "^7.23|^8.1|^9.0",
"phpunit/phpunit": "^9.5.20|^10.0",
"vimeo/psalm": "^4.20"
"vimeo/psalm": "^4.20|^5.22"
},
"config": {
"sort-packages": true
Expand Down