diff --git a/.github/actions/ci-setup/action.yml b/.github/actions/ci-setup/action.yml index 19df378a..054575eb 100644 --- a/.github/actions/ci-setup/action.yml +++ b/.github/actions/ci-setup/action.yml @@ -43,5 +43,5 @@ runs: ini-values: pcov.directory=module - name: Install dependencies if: ${{ inputs.install-deps == 'yes' }} - run: composer install --no-interaction --prefer-dist + run: composer install --no-interaction --prefer-dist ${{ inputs.php-version == '8.3' && '--ignore-platform-reqs' || '' }} shell: bash diff --git a/.github/workflows/ci-db-tests.yml b/.github/workflows/ci-db-tests.yml index f0fc3eaa..c2bfe8d9 100644 --- a/.github/workflows/ci-db-tests.yml +++ b/.github/workflows/ci-db-tests.yml @@ -13,11 +13,12 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - php-version: ['8.2'] + php-version: ['8.2', '8.3'] + continue-on-error: ${{ matrix.php-version == '8.3' }} env: LC_ALL: C steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install MSSQL ODBC if: ${{ inputs.platform == 'ms' }} run: sudo ./data/infra/ci/install-ms-odbc.sh diff --git a/.github/workflows/ci-docker-image-build.yml b/.github/workflows/ci-docker-image-build.yml index 3a055f10..43812fad 100644 --- a/.github/workflows/ci-docker-image-build.yml +++ b/.github/workflows/ci-docker-image-build.yml @@ -10,5 +10,5 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - run: docker build -t shlink-docker-image:temp . diff --git a/.github/workflows/ci-mutation-tests.yml b/.github/workflows/ci-mutation-tests.yml index a0facf09..7ee91941 100644 --- a/.github/workflows/ci-mutation-tests.yml +++ b/.github/workflows/ci-mutation-tests.yml @@ -13,9 +13,10 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - php-version: ['8.2'] + php-version: ['8.2', '8.3'] + continue-on-error: ${{ matrix.php-version == '8.3' }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: './.github/actions/ci-setup' with: php-version: ${{ matrix.php-version }} diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index e407da70..d606e252 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -13,9 +13,10 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - php-version: ['8.2'] + php-version: ['8.2', '8.3'] + continue-on-error: ${{ matrix.php-version == '8.3' }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Start postgres database server if: ${{ inputs.test-group == 'api' }} run: docker-compose -f docker-compose.yml -f docker-compose.ci.yml up -d shlink_db_postgres diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4f19904d..3953aeec 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: php-version: ['8.2'] command: ['cs', 'stan', 'swagger:validate'] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: './.github/actions/ci-setup' with: php-version: ${{ matrix.php-version }} @@ -59,17 +59,18 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - php-version: ['8.2'] + php-version: ['8.2', '8.3'] + continue-on-error: ${{ matrix.php-version == '8.3' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # rr get-binary picks this env automatically steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: docker-compose -f docker-compose.yml -f docker-compose.ci.yml up -d shlink_db_postgres - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} tools: composer - - run: composer install --no-interaction --prefer-dist --ignore-platform-req=ext-openswoole + - run: composer install --no-interaction --prefer-dist --ignore-platform-req=ext-openswoole ${{ matrix.php-version == '8.3' && '--ignore-platform-reqs' || '' }} - run: ./vendor/bin/rr get --no-interaction --no-config --location bin/ && chmod +x bin/rr - run: composer test:api:rr @@ -138,7 +139,7 @@ jobs: php-version: ['8.2'] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Use PHP uses: shivammathur/setup-php@v2 with: diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 66c24528..be34a9a1 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -10,10 +10,15 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - php-version: ['8.2'] + php-version: ['8.2', '8.3'] swoole: ['yes', 'no'] + exclude: + # Openswoole does not support PHP 8.3, so lets not build for that combination + # Next Shlink version (4.0.0) is completely dropping support for openswoole and we will be able to remove this + - php-version: '8.3' + swoole: 'yes' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: './.github/actions/ci-setup' with: php-version: ${{ matrix.php-version }} @@ -33,7 +38,7 @@ jobs: needs: ['build'] runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/download-artifact@v3 with: path: build diff --git a/.github/workflows/publish-swagger-spec.yml b/.github/workflows/publish-swagger-spec.yml index 094e8461..b18eda20 100644 --- a/.github/workflows/publish-swagger-spec.yml +++ b/.github/workflows/publish-swagger-spec.yml @@ -12,7 +12,7 @@ jobs: matrix: php-version: ['8.2'] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Determine version id: determine_version run: echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT diff --git a/CHANGELOG.md b/CHANGELOG.md index 67e8a6b5..2510b208 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com), and this This is important if you are running multiple Shlink instance on the same server, or they share the same Redis instance (even more so if they are on different versions). +* [#1905](https://github.com/shlinkio/shlink/issues/1905) Add support for PHP 8.3. + ### Changed * [#1799](https://github.com/shlinkio/shlink/issues/1799) RoadRunner/openswoole jobs are not run anymore for tasks that are actually disabled. diff --git a/composer.json b/composer.json index 34168f62..aca4464e 100644 --- a/composer.json +++ b/composer.json @@ -45,13 +45,13 @@ "php-middleware/request-id": "^4.1", "pugx/shortid-php": "^1.1", "ramsey/uuid": "^4.7", - "shlinkio/shlink-common": "dev-main#4e859a7 as 5.7", - "shlinkio/shlink-config": "dev-main#c0aa01f as 2.5", - "shlinkio/shlink-event-dispatcher": "dev-main#bd3a62b as 3.1", - "shlinkio/shlink-importer": "^5.1", - "shlinkio/shlink-installer": "dev-develop#a665623 as 8.6", - "shlinkio/shlink-ip-geolocation": "^3.2", - "shlinkio/shlink-json": "^1.0", + "shlinkio/shlink-common": "dev-main#7d46772 as 5.7", + "shlinkio/shlink-config": "dev-main#cde5d3b as 2.5", + "shlinkio/shlink-event-dispatcher": "dev-main#faf2582 as 3.1", + "shlinkio/shlink-importer": "dev-main#d621b20 as 5.2", + "shlinkio/shlink-installer": "dev-develop#c1ef08c as 8.6", + "shlinkio/shlink-ip-geolocation": "dev-main#4a1cef8 as 3.3", + "shlinkio/shlink-json": "dev-main#e5a111c as 1.1", "spiral/roadrunner": "^2023.2", "spiral/roadrunner-cli": "^2.5", "spiral/roadrunner-http": "^3.1", @@ -75,7 +75,7 @@ "phpunit/phpunit": "^10.4", "roave/security-advisories": "dev-master", "shlinkio/php-coding-standard": "~2.3.0", - "shlinkio/shlink-test-utils": "^3.7.1", + "shlinkio/shlink-test-utils": "dev-main#cbbb64e as 3.8.0", "symfony/var-dumper": "^6.3", "veewee/composer-run-parallel": "^1.2" },