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@v1Phpcs 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@v1with:
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@v1with:
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@v1with:
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@v1with:
php_versions: '["7.4"]'bedita_version: '4.7.1'coverage_min_percentage: 70unit-5:
uses: bedita/github-workflows/.github/workflows/php-unit.yml@v1with:
php_versions: '["7.4","8.0","8.1"]'bedita_version: '5.0.0'coverage_min_percentage: 70Python 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@v1with:
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@v1with:
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.iniformat where the new version should be saved, this file will be pushed to the working branchversion_ini_prefix- (optional) content of version.inifile where the new version will be appendedtoml_conf_path- (optional) path of a version file in.tomlformat where the new version should be saved, this file will be pushed to the working branchtoml_conf_version_key- (optional) content of version.tomlfile 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: truedefault: 'patch'type: choiceoptions: [patch, minor, major]jobs:
release_job:
uses: bedita/github-workflows/.github/workflows/release.yml@v1with:
main_branch: 'master'dist_branches: '["master", "1.x"]'version_bump: ${{ inputs.releaseType }}version_ini_path: config/version.iniversion_ini_prefix: "[MyApp]\nversion = "other_job:
runs-on: 'ubuntu-latest'needs: release_jobsteps:
- name: Debug output versionrun: | 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.