Reusable workflow that launches on an ubuntu-latest phpcs, phpstan and phpunit (with php 7.4, 8.0 and 8.1) checks.
Usage example of caller workflow:
name: 'php'
on:
pull_request:
paths:
- '**/*.php'
- '.github/workflows/php.yml'
- 'composer.json'
push:
paths:
- '**/*.php'
- '.github/workflows/php.yml'
- 'composer.json'
jobs:
php_cs_stan_unit:
uses: bedita/github-workflows/.github/workflows/php-cs-stan-unit.yml@v1
Phpcs checks on specified php versions.
Usage:
name: 'cs'
on:
pull_request:
paths:
- '**/*.php'
- '.github/workflows/cs.yml'
- 'composer.json'
push:
paths:
- '**/*.php'
- '.github/workflows/cs.yml'
- 'composer.json'
jobs:
cs:
uses: bedita/github-workflows/.github/workflows/php-cs.yml@v1
with:
php_versions: '["7.4", "8.0", "8.1"]'
Psalm checks on specified php versions.
Usage:
name: 'psalm'
on:
pull_request:
paths:
- '**/*.php'
- '.github/workflows/psalm.yml'
- 'composer.json'
push:
paths:
- '**/*.php'
- '.github/workflows/psalm.yml'
- 'composer.json'
jobs:
psalm:
uses: bedita/github-workflows/.github/workflows/php-psalm.yml@v1
with:
php_versions: '["7.4", "8.0", "8.1"]'
Phpstan checks on specified php versions.
Usage:
name: 'stan'
on:
pull_request:
paths:
- '**/*.php'
- '.github/workflows/stan.yml'
- 'composer.json'
push:
paths:
- '**/*.php'
- '.github/workflows/stan.yml'
- 'composer.json'
jobs:
stan:
uses: bedita/github-workflows/.github/workflows/php-stan.yml@v1
with:
php_versions: '["7.4", "8.0", "8.1"]'
Phpunit checks on specified php versions and bedita versions.
Parameter coverage_min_percentage
can be used to specify minimum required coverage to pass tests (default is 85).
Usage:
name: 'unit'
on:
pull_request:
paths:
- '**/*.php'
- '.github/workflows/unit.yml'
- 'composer.json'
push:
paths:
- '**/*.php'
- '.github/workflows/unit.yml'
- 'composer.json'
jobs:
unit-4:
uses: bedita/github-workflows/.github/workflows/php-unit.yml@v1
with:
php_versions: '["7.4"]'
bedita_version: '4.7.1'
coverage_min_percentage: 70
unit-5:
uses: bedita/github-workflows/.github/workflows/php-unit.yml@v1
with:
php_versions: '["7.4","8.0","8.1"]'
bedita_version: '5.0.0'
coverage_min_percentage: 70
Python styles and linting checks on specified python versions.
Usage:
name: 'cs'
on:
pull_request:
paths:
- '**/*.py'
- '.github/workflows/cs.yml'
push:
paths:
- '**/*.php'
- '.github/workflows/cs.yml'
jobs:
cs:
uses: bedita/github-workflows/.github/workflows/python-cs.yml@v1
with:
python_versions: '["3.10", "3.11"]'
Python unit tests checks on specified python versions.
Usage:
name: 'unit'
on:
pull_request:
paths:
- '**/*.py'
- '.github/workflows/unit.yml'
push:
paths:
- '**/*.py'
- '.github/workflows/unit.yml'
jobs:
unit:
uses: bedita/github-workflows/.github/workflows/python-unit.yml@v1
with:
python_versions: '["3.10","3.11"]'
Reusable workflow to create releases via Pull Requests merge, when PRs use labels release:major
, release:minor
, release:patch
.
Input parameters:
main_branch
- (mandatory) name of the branch where a new major version is allowed, in other branches major version creation will faildist_branches
- (mandatory, array in JSON format) name of the branches where a new automatic releae will be createdversion_bump
- (optional) type of version bump requested (patch
,minor
,major
) or leave blank (empty string) to automatically infer from Pull Request labelsversion_ini_path
- (optional) path of a version file in.ini
format where the new version should be saved, this file will be pushed to the working branchversion_ini_prefix
- (optional) content of version.ini
file where the new version will be appendedtoml_conf_path
- (optional) path of a version file in.toml
format where the new version should be saved, this file will be pushed to the working branchtoml_conf_version_key
- (optional) content of version.toml
file where the new version will be appendedpackage_json_version
- (optional) boolean flag: true when you want to apply a package.json file version update
Usage example of caller workflow:
name: 'release'
on:
pull_request_target:
types: [closed]
workflow_dispatch:
inputs:
releaseType:
description: 'Release type'
required: true
default: 'patch'
type: choice
options: [patch, minor, major]
jobs:
release_job:
uses: bedita/github-workflows/.github/workflows/release.yml@v1
with:
main_branch: 'master'
dist_branches: '["master", "1.x"]'
version_bump: ${{ inputs.releaseType }}
version_ini_path: config/version.ini
version_ini_prefix: "[MyApp]\nversion = "
other_job:
runs-on: 'ubuntu-latest'
needs: release_job
steps:
- name: Debug output version
run: |
echo version var ${{ needs.release_job.outputs.version }}
The newly created release version is available in the calling workflow with ${{ needs.<job_id>.outputs.version }}
- where <job_id>
is the the job ID using this release workflow, that must be included in needs
section in the caller job.