This project provides community health files and composite actions for the @ergebnis organization.
This project provides the following composite actions:
ergebnis/.github/actions/composer/determine-cache-directory
ergebnis/.github/actions/composer/determine-root-version
ergebnis/.github/actions/composer/install
ergebnis/.github/actions/github/pull-request/add-assignee
ergebnis/.github/actions/github/pull-request/add-label-based-on-branch-name
ergebnis/.github/actions/github/pull-request/approve
ergebnis/.github/actions/github/pull-request/merge
ergebnis/.github/actions/github/pull-request/request-review
ergebnis/.github/actions/github/release/create
ergebnis/.github/actions/oh-dear/check/request-run
ergebnis/.github/actions/oh-dear/maintenance-period/start
ergebnis/.github/actions/oh-dear/maintenance-period/stop
ergebnis/.github/actions/phive/install
This action determines the cache directory for composer
and exports it as COMPOSER_CACHE_DIR
environment variable.
This is useful for caching dependencies installed with composer
using actions/cache
.
name: "Integrate"
on:
pull_request: null
push:
branches:
- "main"
jobs:
tests:
name: "Tests"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v3.0.2"
- name: "Set up PHP"
uses: "shivammathur/setup-php@2.21.2"
with:
coverage: "none"
php-version: "8.1"
- name: "Determine composer cache directory"
uses: "ergebnis/.github/actions/composer/determine-cache-directory@1.8.0"
- name: "Cache dependencies installed with composer"
uses: "actions/cache@v3.0.8"
with:
path: "${{ env.COMPOSER_CACHE_DIR }}"
key: "composer-${{ hashFiles('composer.lock') }}"
restore-keys: "composer-"
For details, see actions/composer/determine-cache-directory/action.yaml
.
working-directory
, optional: The working directory to use. Defaults to"."
.
none
- The
COMPOSER_CACHE_DIR
environment variable contains the path to the composer cache directory.
This action determines the composer root version and exports it as COMPOSER_ROOT_VERSION
environment variable.
This is useful for a package that depends on itself, for example, phpunit/phpunit
name: "Integrate"
on:
pull_request: null
push:
branches:
- "main"
jobs:
tests:
name: "Tests"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v3.0.2"
- name: "Set up PHP"
uses: "shivammathur/setup-php@2.21.2"
with:
coverage: "none"
php-version: "8.1"
- name: "Determine composer root version"
uses: "ergebnis/.github/actions/composer/determine-root-version@1.8.0"
For details, see actions/composer/determine-root-version/action.yaml
.
branch
, optional: The name of the branch, defaults to"main"
.working-directory
, optional: The working directory to use, defaults to"."
.
none
-
The
COMPOSER_ROOT_VERSION
environment variable contains the root version if it has been defined asbranch-alias
incomposer.json
.{ "extra": { "branch-alias": { "dev-main": "10.0-dev" } } }
This action installs or updates dependencies with composer
.
name: "Integrate"
on:
pull_request: null
push:
branches:
- "main"
jobs:
tests:
name: "Tests"
runs-on: "ubuntu-latest"
strategy:
matrix:
dependencies:
- "lowest"
- "locked"
- "highest"
steps:
- name: "Checkout"
uses: "actions/checkout@v3.0.2"
- name: "Set up PHP"
uses: "shivammathur/setup-php@2.21.2"
with:
coverage: "none"
php-version: "8.1"
- name: "Determine composer cache directory"
uses: "ergebnis/.github/actions/composer/determine-cache-directory@1.8.0"
- name: "Cache dependencies installed with composer"
uses: "actions/cache@v3.0.8"
with:
path: "${{ env.COMPOSER_CACHE_DIR }}"
key: "composer-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}"
restore-keys: "composer-${{ matrix.dependencies }}-"
- name: "Install ${{ matrix.dependencies }} dependencies with composer"
uses: "ergebnis/.github/actions/composer/install@1.8.0"
with:
dependencies: "${{ matrix.dependencies }}"
For details, see actions/composer/install/action.yaml
.
dependencies
, optional: Which dependencies to install, one of"lowest"
,"locked"
,"highest"
working-directory
, optional: The working directory to use, defaults to"."
.
none
-
When
dependencies
is set to"lowest"
, dependencies are installed in the directory specified byworking-directory
withcomposer update --ansi --no-interaction --no-progress --prefer-lowest
-
When
dependencies
is set to"locked"
, dependencies are installed in the directory specified byworking-directory
withcomposer install --ansi --no-interaction --no-progress
-
When
dependencies
is set to"highest"
, dependencies are installed in the directory specified byworking-directory
withcomposer update --ansi --no-interaction --no-progress
This action adds an assignee to a pull request.
This is useful when you want to automatically merge a pull request, but prefer to assign a bot user beforehand.
name: "Merge"
on:
workflow_run:
types:
- "completed"
workflows:
- "Integrate"
jobs:
merge:
name: "Merge"
runs-on: "ubuntu-latest"
if: >
github.event.workflow_run.event == 'pull_request' &&
github.event.workflow_run.conclusion == 'success' &&
github.actor == 'dependabot[bot]' && (
startsWith(github.event.workflow_run.head_commit.message, 'composer(deps-dev)') ||
startsWith(github.event.workflow_run.head_commit.message, 'github-actions(deps)')
)
steps:
- name: "Assign @ergebnis-bot"
uses: "ergebnis/.github/actions/github/pull-request/add-assignee@1.8.0"
with:
assignee: "ergebnis-bot"
github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}"
For details, see actions/github/pull-request/add-assignee/action.yaml
.
assignee
, required: The username of a user to add as an assignee to a pull request.github-token
, required: The GitHub token of a user with permission to add assignees to a pull request
none
- The GitHub user with the username specified in the
assignee
input is assigned to the pull request. - The
PULL_REQUEST_NUMBER
environment variable contains the number of the pull request.
This action adds a label to a pull request based on the name of the branch.
# https://docs.github.com/en/actions
name: "Triage"
on: # yamllint disable-line rule:truthy
pull_request_target:
types:
- "opened"
jobs:
label:
name: "Label"
runs-on: "ubuntu-latest"
steps:
- name: "Add labels based on branch name"
uses: "ergebnis/.github/actions/github/pull-request/add-label-based-on-branch-name@1.8.0"
with:
github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}"
For details, see actions/github/pull-request/add-label-based-on-branch-name/action.yaml
.
github-token
, required: The GitHub token of a user with permission to add labels to to a pull request.
none
- When the branch name starts with
feature/
, the labelenhancement
is added to the pull request by the user who owns the GitHub token specified with thegithub-token
input. - When the branch name starts with
fix/
, the labelbug
is added to the pull request by the user who owns the GitHub token specified with thegithub-token
input. - The
PULL_REQUEST_BRANCH_NAME
environment variable contains the name of the head branch of the pull request. - The
PULL_REQUEST_NUMBER
environment variable contains the number of the pull request.
This action approves a pull request.
This is useful when you want to automatically merge a pull request, but prefer to let a bot user approve the pull request beforehand.
name: "Merge"
on:
workflow_run:
types:
- "completed"
workflows:
- "Integrate"
jobs:
merge:
name: "Merge"
runs-on: "ubuntu-latest"
if: >
github.event.workflow_run.event == 'pull_request' &&
github.event.workflow_run.conclusion == 'success' &&
github.actor == 'dependabot[bot]' && (
startsWith(github.event.workflow_run.head_commit.message, 'composer(deps-dev)') ||
startsWith(github.event.workflow_run.head_commit.message, 'github-actions(deps)')
)
steps:
- name: "Approve pull request"
uses: "ergebnis/.github/actions/github/pull-request/approve@1.8.0"
with:
github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}"
For details, see actions/github/pull-request/merge/action.yaml
.
github-token
, required: The GitHub token of a user with permission to approve a pull request
none
- The pull request is approved by the user who owns the GitHub token specified with the
github-token
input. - The
PULL_REQUEST_NUMBER
environment variable contains the number of the pull request.
This action merges a pull request.
This is useful when you want to automatically merge a pull request, for example, opened by dependabot
.
name: "Merge"
on:
workflow_run:
types:
- "completed"
workflows:
- "Integrate"
jobs:
merge:
name: "Merge"
runs-on: "ubuntu-latest"
if: >
github.event.workflow_run.event == 'pull_request' &&
github.event.workflow_run.conclusion == 'success' &&
github.actor == 'dependabot[bot]' && (
startsWith(github.event.workflow_run.head_commit.message, 'composer(deps-dev)') ||
startsWith(github.event.workflow_run.head_commit.message, 'github-actions(deps)')
)
steps:
- name: "Merge pull request"
uses: "ergebnis/.github/actions/github/pull-request/merge@1.8.0"
with:
github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}"
For details, see actions/github/pull-request/merge/action.yaml
.
github-token
, required: The GitHub token of a user with permission to merge a pull requestmerge-method
, option: The merge method to use, one"merge"
,"rebase"
,"squash"
, defaults to"merge"
none
- The pull request is merged by the user who owns the GitHub token specified with the
github-token
input. - The
PULL_REQUEST_NUMBER
environment variable contains the number of the pull request.
This action requests a review for a pull request.
This is useful when you want to automatically merge a pull request, but prefer to let a bot user self-request a review for the pull request beforehand.
name: "Merge"
on:
workflow_run:
types:
- "completed"
workflows:
- "Integrate"
jobs:
merge:
name: "Merge"
runs-on: "ubuntu-latest"
if: >
github.event.workflow_run.event == 'pull_request' &&
github.event.workflow_run.conclusion == 'success' &&
github.actor == 'dependabot[bot]' && (
startsWith(github.event.workflow_run.head_commit.message, 'composer(deps-dev)') ||
startsWith(github.event.workflow_run.head_commit.message, 'github-actions(deps)')
)
steps:
- name: "Request review from @ergebnis-bot"
uses: "ergebnis/.github/actions/github/pull-request/request-review@1.8.0"
with:
github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}"
reviewer: "ergebnis-bot"
For details, see actions/github/pull-request/request-review/action.yaml
.
github-token
, required: The GitHub token of a user with permission to request reviewers for a pull request.reviewer
, required: The username of user to request review from for a pull request.
none
- A pull request review is requested for the user identified by the value of the
reviewer
input by the user who owns the GitHub token specified with thegithub-token
input. - The
PULL_REQUEST_NUMBER
environment variable contains the number of the pull request.
This action creates a release.
This is useful when you automatically want to create releases with automatically generated release notes.
name: "Release"
on:
push:
tags:
- "**"
jobs:
release:
name: "Release"
runs-on: "ubuntu-latest"
steps:
- name: "Create release"
uses: "ergebnis/.github/actions/github/release/create@1.8.0"
with:
github-token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}"
For details, see actions/github/release/create/action.yaml
.
github-token
, required: The GitHub token of a user with permission to create a release.
none
- A release is created by the user who owns the GitHub token specified with the
github-token
input. - The
RELEASE_HTML_URL
environment variable contains the HTML URL to the release. - The
RELEASE_ID
environment variable contains the release identifier. - The
RELEASE_TAG
environment variable contains the release tag. - The
RELEASE_UPLOAD_URL
environment variable contains the URL for uploading release assets.
This action requests a check run on Oh Dear!.
name: "Deploy"
on:
push:
branches:
- "main"
jobs:
deploy:
name: "Deploy"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v3.0.2"
with:
fetch-depth: 50
- name: "Request broken links check on ohdear.app"
uses: "ergebnis/.github/actions/oh-dear/maintenance-period/start@1.8.0"
with:
oh-dear-api-token: "${{ secrets.OH_DEAR_API_TOKEN }}"
oh-dear-check-id: "${{ secrets.OH_DEAR_BROKEN_LINKS_CHECK_ID }}"
For details, see actions/oh-dear/check/request-run/action.yaml
.
oh-dear-api-token
, required: The Oh Dear API token of a user with permission to request a check runoh-dear-check-id
, required: Check identifer of an Oh Dear check for which to request a run
none
- A check run is requested by the user who owns the Oh Dear API token specified with the
oh-dear-api-token
input for the check identified by theoh-dear-check-id
input.
This action starts a maintenance period on Oh Dear!.
name: "Deploy"
on:
push:
branches:
- "main"
jobs:
deploy:
name: "Deploy"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v3.0.2"
with:
fetch-depth: 50
- name: "Start maintenance period on ohdear.app"
uses: "ergebnis/.github/actions/oh-dear/maintenance-period/start@1.8.0"
with:
oh-dear-api-token: "${{ secrets.OH_DEAR_API_TOKEN }}"
oh-dear-site-id: "${{ secrets.OH_DEAR_SITE_ID }}"
For details, see actions/oh-dear/maintenance-period/start/action.yaml
.
oh-dear-api-token
, required: The Oh Dear API token of a user with permission to start a maintenance periodoh-dear-site-id
, required: Site identifer of an Oh Dear site for which to start a maintenance period
none
- A maintenance period is started by the user who owns the Oh Dear API token specified with the
oh-dear-api-token
input for the site identified by theoh-dear-site-id
input.
This action stops a maintenance period on Oh Dear!.
name: "Deploy"
on:
push:
branches:
- "main"
jobs:
deploy:
name: "Deploy"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v3.0.2"
with:
fetch-depth: 50
- name: "Stop maintenance period on ohdear.app"
uses: "ergebnis/.github/actions/oh-dear/maintenance-period/stop@1.8.0"
with:
oh-dear-api-token: "${{ secrets.OH_DEAR_API_TOKEN }}"
oh-dear-site-id: "${{ secrets.OH_DEAR_SITE_ID }}"
For details, see actions/oh-dear/maintenance-period/stop/action.yaml
.
oh-dear-api-token
, required: The Oh Dear API token of a user with permission to stop a maintenance periodoh-dear-site-id
, required: Site identifer of an Oh Dear site for which to stop a maintenance period
none
- A maintenance period is stopped by the user who owns the Oh Dear API token specified with the
oh-dear-api-token
input for the site identified by theoh-dear-site-id
input.
This action installs dependencies with phive
.
name: "Integrate"
on:
pull_request: null
push:
branches:
- "main"
jobs:
tests:
name: "Tests"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout"
uses: "actions/checkout@v3.0.2"
- name: "Set up PHP"
uses: "shivammathur/setup-php@2.21.2"
with:
coverage: "none"
php-version: "8.1"
tools: "phive"
- name: "Install dependencies with phive"
uses: "ergebnis/.github/actions/phive/install@1.8.0"
with:
trust-gpg-keys: "0x033E5F8D801A2F8D,0x2A8299CE842DD38C"
For details, see actions/phive/install/action.yaml
.
phive-home
, optional: Which directory to use asPHIVE_HOME
directory, defaults to".build/phive"
.trust-gpg-keys
, required: Which GPG keys to trust, a comma-separated list of trusted GPG keys
none
- Given that
phive
is available,phive
could find aphars.xml
, and keys presented by packages are listed using thetrust-gpg-keys
option, dependencies are installed withphive
.
The directory configured by the phive-home
directory is cached using actions/cache
.
The maintainers of this project record notable changes to this project in a changelog.
The maintainers of this project suggest following the contribution guide.
The maintainers of this project ask contributors to follow the code of conduct.
The maintainers of this project provide limited support.
You can support the maintenance of this project by sponsoring @localheinz or requesting an invoice for services related to this project.
This project has a security policy.
This project uses the MIT license.
Follow @localheinz and @ergebnis on Twitter.