Skip to content
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
21 changes: 15 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,17 +89,26 @@ jobs:
echo "COM_BFSTOP_ROOT=$RUNNER_TEMP/com_bfstop" >> "$GITHUB_ENV"
- uses: actions/checkout@v7

# the component is tested together with the plugin: use its branch of
# the same name if there is one (for changes spanning both), else main
# use the com_bfstop branch of the same name if there is one and it
# has commits main hasn't (for changes spanning both), else main: a
# branch which was merged and not deleted is a stale copy of an old main
- name: Determine com_bfstop branch
id: com
env:
GH_TOKEN: ${{ github.token }}
run: |
branch="${GITHUB_HEAD_REF:-$GITHUB_REF_NAME}"
if git ls-remote --exit-code --heads https://github.com/codeling/com_bfstop.git "$branch" > /dev/null; then
echo "ref=$branch" >> "$GITHUB_OUTPUT"
else
echo "ref=main" >> "$GITHUB_OUTPUT"
ref=main
ahead=none
if [[ "$branch" =~ ^[A-Za-z0-9._/-]+$ ]] \
&& git ls-remote --exit-code --heads https://github.com/codeling/com_bfstop.git "$branch" > /dev/null; then
ahead="$(gh api "repos/codeling/com_bfstop/compare/main...$branch" --jq .ahead_by)"
if [ "$ahead" -gt 0 ]; then
ref="$branch"
fi
fi
echo "ref=$ref" >> "$GITHUB_OUTPUT"
echo "Using com_bfstop $ref (a branch '$branch' there is ahead of main by: $ahead)"
- uses: actions/checkout@v7
with:
repository: codeling/com_bfstop
Expand Down
5 changes: 5 additions & 0 deletions tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,11 @@ the site only needs to be set up again when the database schema changes.
GitHub Actions runs everything on each push and pull request, on Joomla 5 and
6 with MySQL, MariaDB and PostgreSQL, see `.github/workflows/ci.yml`.

Plugin and component are tested together, and each repository's workflow checks
out the other one: the branch of the same name if that exists **and has commits
`main` doesn't** (for a change spanning both repositories), else `main`. A
branch that was merged and not deleted is therefore ignored, not tested against.

### Joomla versions of the CI matrix

The matrix runs one Joomla version per major version, each with its SHA-256 in
Expand Down
Loading