Compare commits

...

2 Commits

Author SHA1 Message Date
Marijn 5ea7a636b8 ci: skip dev image build on tags, wait for in-progress CI runs, improve quality error output (#171)
- Skip the dev image build job on tag pushes — it was wasted work since
  quality and tests are already skipped on tags
- Remove the unnecessary `needs: build` from verify-prior-run; it ran
  independently of the dev image anyway
- Make verify-prior-run poll (30s interval, 15 min max) so tagging
  immediately after a push to main waits for the CI run to finish rather
  than failing instantly
- Replace the yes/no outcomes string in "Assert all checks passed" with
  per-step ::error:: annotations so GitHub highlights exactly which
  quality check failed
2026-07-03 12:28:01 +00:00
dependabot[bot] d37136be93 Bump martin-georgiev/postgresql-for-doctrine from 4.6.0 to 4.7.0 (#163)
Bumps [martin-georgiev/postgresql-for-doctrine](https://github.com/martin-georgiev/postgresql-for-doctrine) from 4.6.0 to 4.7.0.
- [Release notes](https://github.com/martin-georgiev/postgresql-for-doctrine/releases)
- [Changelog](https://github.com/martin-georgiev/postgresql-for-doctrine/blob/main/CHANGELOG.md)
- [Commits](https://github.com/martin-georgiev/postgresql-for-doctrine/compare/v4.6.0...v4.7.0)

---
updated-dependencies:
- dependency-name: martin-georgiev/postgresql-for-doctrine
  dependency-version: 4.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-03 12:14:30 +00:00
2 changed files with 56 additions and 22 deletions
+41 -7
View File
@@ -21,6 +21,7 @@ jobs:
name: Build Dev Image name: Build Dev Image
runs-on: ubuntu-latest runs-on: ubuntu-latest
timeout-minutes: 15 timeout-minutes: 15
if: "!startsWith(github.ref, 'refs/tags/')"
permissions: permissions:
contents: read contents: read
steps: steps:
@@ -97,8 +98,20 @@ jobs:
- name: Assert all checks passed - name: Assert all checks passed
if: always() if: always()
run: | run: |
outcomes="${{ steps.twig_lint.outcome }} ${{ steps.cs.outcome }} ${{ steps.twig_cs.outcome }} ${{ steps.phpstan.outcome }} ${{ steps.rector.outcome }}" failed=0
if echo "$outcomes" | grep -q "failure"; then exit 1; fi check() {
local name="$1" outcome="$2"
if [[ "$outcome" == "failure" ]]; then
echo "::error::$name failed"
failed=1
fi
}
check "Twig Lint" "${{ steps.twig_lint.outcome }}"
check "Coding Style" "${{ steps.cs.outcome }}"
check "Twig Coding Style" "${{ steps.twig_cs.outcome }}"
check "PHPStan" "${{ steps.phpstan.outcome }}"
check "Rector" "${{ steps.rector.outcome }}"
exit $failed
tests: tests:
name: Tests name: Tests
@@ -148,23 +161,44 @@ jobs:
verify-prior-run: verify-prior-run:
name: Verify Prior CI Run name: Verify Prior CI Run
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build timeout-minutes: 20
if: startsWith(github.ref, 'refs/tags/') if: startsWith(github.ref, 'refs/tags/')
permissions: permissions:
actions: read actions: read
steps: steps:
- name: Check for successful CI run on this commit - name: Wait for and verify successful CI run on this commit
env: env:
GH_TOKEN: ${{ github.token }} GH_TOKEN: ${{ github.token }}
run: | run: |
count=$(gh api \ max_attempts=30
attempt=0
while [[ $attempt -lt $max_attempts ]]; do
attempt=$((attempt + 1))
success_count=$(gh api \
"repos/${{ github.repository }}/actions/workflows/ci.yml/runs?head_sha=${{ github.sha }}&status=success&per_page=5" \ "repos/${{ github.repository }}/actions/workflows/ci.yml/runs?head_sha=${{ github.sha }}&status=success&per_page=5" \
--jq "[.workflow_runs[] | select(.id != ${{ github.run_id }})] | length") --jq "[.workflow_runs[] | select(.id != ${{ github.run_id }})] | length")
if [[ "$count" -eq 0 ]]; then
if [[ "$success_count" -gt 0 ]]; then
echo "Found $success_count prior successful CI run(s) for ${{ github.sha }}."
exit 0
fi
in_progress_count=$(gh api \
"repos/${{ github.repository }}/actions/workflows/ci.yml/runs?head_sha=${{ github.sha }}&per_page=10" \
--jq "[.workflow_runs[] | select(.id != ${{ github.run_id }}) | select(.status == \"in_progress\" or .status == \"queued\" or .status == \"waiting\" or .status == \"requested\" or .status == \"pending\")] | length")
if [[ "$in_progress_count" -gt 0 ]]; then
echo "CI still in progress (attempt $attempt/$max_attempts), waiting 30s..."
sleep 30
else
echo "::error::No prior successful CI run found for ${{ github.sha }}. Only tag commits that have passed CI on main." echo "::error::No prior successful CI run found for ${{ github.sha }}. Only tag commits that have passed CI on main."
exit 1 exit 1
fi fi
echo "Found $count prior successful CI run(s) for this commit." done
echo "::error::Timed out waiting for CI run to complete for ${{ github.sha }}."
exit 1
build-deploy: build-deploy:
name: Build and Deploy name: Build and Deploy
Generated
+10 -10
View File
@@ -1839,16 +1839,16 @@
}, },
{ {
"name": "martin-georgiev/postgresql-for-doctrine", "name": "martin-georgiev/postgresql-for-doctrine",
"version": "v4.6.0", "version": "v4.7.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/martin-georgiev/postgresql-for-doctrine.git", "url": "https://github.com/martin-georgiev/postgresql-for-doctrine.git",
"reference": "59841c7e53f8339b13bc0cb0ee9931b7b9bbb139" "reference": "23b5c2694083355ab87eaa913b43a0cddd8c64bb"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/martin-georgiev/postgresql-for-doctrine/zipball/59841c7e53f8339b13bc0cb0ee9931b7b9bbb139", "url": "https://api.github.com/repos/martin-georgiev/postgresql-for-doctrine/zipball/23b5c2694083355ab87eaa913b43a0cddd8c64bb",
"reference": "59841c7e53f8339b13bc0cb0ee9931b7b9bbb139", "reference": "23b5c2694083355ab87eaa913b43a0cddd8c64bb",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -1863,13 +1863,13 @@
"deptrac/deptrac": "^4.0", "deptrac/deptrac": "^4.0",
"doctrine/orm": "~2.14||~3.0", "doctrine/orm": "~2.14||~3.0",
"ekino/phpstan-banned-code": "^3.2.0", "ekino/phpstan-banned-code": "^3.2.0",
"friendsofphp/php-cs-fixer": "^3.95.2", "friendsofphp/php-cs-fixer": "^3.95.11",
"phpstan/phpstan": "^2.1.55", "phpstan/phpstan": "^2.2.2",
"phpstan/phpstan-deprecation-rules": "^2.0.4", "phpstan/phpstan-deprecation-rules": "^2.0.4",
"phpstan/phpstan-doctrine": "^2.0.22", "phpstan/phpstan-doctrine": "^2.0.27",
"phpstan/phpstan-phpunit": "^2.0.16", "phpstan/phpstan-phpunit": "^2.0.16",
"phpunit/phpunit": "^10.5.63||^11.5", "phpunit/phpunit": "^10.5.63||^11.5",
"rector/rector": "^2.4.4", "rector/rector": "^2.5.2",
"symfony/cache": "^6.4||^7.0", "symfony/cache": "^6.4||^7.0",
"symfony/var-exporter": "^6.4||^7.0" "symfony/var-exporter": "^6.4||^7.0"
}, },
@@ -1952,7 +1952,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/martin-georgiev/postgresql-for-doctrine/issues", "issues": "https://github.com/martin-georgiev/postgresql-for-doctrine/issues",
"source": "https://github.com/martin-georgiev/postgresql-for-doctrine/tree/v4.6.0" "source": "https://github.com/martin-georgiev/postgresql-for-doctrine/tree/v4.7.0"
}, },
"funding": [ "funding": [
{ {
@@ -1964,7 +1964,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-05-29T19:11:20+00:00" "time": "2026-07-01T18:17:39+00:00"
}, },
{ {
"name": "phpdocumentor/reflection-common", "name": "phpdocumentor/reflection-common",