Skip to content

Commit 5db0d6c

Browse files
Merge pull request #71 from andreaswolf/release-process
Add monorepo release process
2 parents 38f65b2 + 13ec68c commit 5db0d6c

File tree

7 files changed

+93
-9
lines changed

7 files changed

+93
-9
lines changed

.github/workflows/lint_test_pull_requests.yaml

+8-5
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,19 @@ jobs:
2323
command: test:php
2424
- name: Rector
2525
command: 'rector --dry-run'
26-
directory: [ 'extension-installer', 'fractor', 'fractor-xml', 'typo3-fractor', 'fractor-doc-generator', 'fractor-yaml', 'fractor-fluid']
26+
directory: [ '', 'extension-installer', 'fractor', 'fractor-xml', 'typo3-fractor', 'fractor-doc-generator', 'fractor-yaml', 'fractor-fluid']
2727
exclude:
2828
- directory: extension-installer
2929
composer-command: {name: 'PHPUnit', command: 'test:php'}
30+
- directory: ''
31+
composer-command: {name: 'PHPUnit', command: 'test:php'}
32+
- directory: ''
33+
composer-command: {name: 'PHPStan', command: 'analyze:php'}
34+
- directory: ''
35+
composer-command: {name: 'Rector', command: 'rector --dry-run'}
3036

31-
name: ${{ matrix.composer-command.name }}/${{ matrix.directory }}
37+
name: ${{ matrix.composer-command.name }}/${{ matrix.directory || '(root)' }}
3238

33-
defaults:
34-
run:
35-
working-directory: ${{ matrix.directory }}
3639
steps:
3740
- uses: actions/checkout@v4
3841
with:

.gitignore

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
.phpunit.result.cache
22
./run-test.sh
3-
.run-test.sh
3+
.run-test.sh
4+
/composer.lock
5+
/vendor/

composer.json

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"name": "a9f/fractor-monorepo",
3+
"description": "Mono repository for the File Read-Analyse-Change TOol",
4+
"type": "project",
5+
"authors": [
6+
{
7+
"name": "Andreas Wolf",
8+
"email": "[email protected]"
9+
}
10+
],
11+
"require-dev": {
12+
"ergebnis/composer-normalize": "^2.42",
13+
"symplify/easy-coding-standard": "^12.1",
14+
"symplify/monorepo-builder": "^11.2"
15+
},
16+
"autoload": {
17+
"psr-4": {
18+
"A9f\\FractorMonorepo\\": "src/"
19+
}
20+
},
21+
"config": {
22+
"allow-plugins": {
23+
"ergebnis/composer-normalize": true
24+
}
25+
},
26+
"scripts": {
27+
"style:php:check": "ecs",
28+
"style:php:fix": "ecs --fix"
29+
}
30+
}

docs/release.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Fractor release howto
2+
3+
We use [https://github.com/symplify/monorepo-builder](symplify/monorepo-builder) for releasing new versions.
4+
5+
## How to release a new version
6+
7+
To release version 0.1.0, run this
8+
9+
vendor/bin/monorepo-builder release v0.1
10+
11+
To release 0.1.1, run
12+
13+
vendor/bin/monorepo-builder release v0.1.1
14+
15+
These commands can be tested by appending `--dry-run`

e2e/typo3-flexform/fractor.php

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
<?php
22

3+
declare(strict_types=1);
34

45
use a9f\Fractor\Configuration\FractorConfiguration;
56
use a9f\Typo3Fractor\Set\Typo3LevelSetList;
67

78
return FractorConfiguration::configure()
89
->withPaths([__DIR__ . '/output/'])
9-
->withSets([
10-
Typo3LevelSetList::UP_TO_TYPO3_13
11-
]);
10+
->withSets([Typo3LevelSetList::UP_TO_TYPO3_13]);

ecs.php

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
return (include __DIR__ . '/.build/ecs.php')
6+
->withPaths([__DIR__ . '/e2e'])
7+
->withRootFiles()
8+
;

monorepo-builder.php

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Symplify\MonorepoBuilder\Config\MBConfig;
6+
use Symplify\MonorepoBuilder\Release\ReleaseWorker\AddTagToChangelogReleaseWorker;
7+
use Symplify\MonorepoBuilder\Release\ReleaseWorker\PushNextDevReleaseWorker;
8+
use Symplify\MonorepoBuilder\Release\ReleaseWorker\PushTagReleaseWorker;
9+
use Symplify\MonorepoBuilder\Release\ReleaseWorker\SetCurrentMutualDependenciesReleaseWorker;
10+
use Symplify\MonorepoBuilder\Release\ReleaseWorker\SetNextMutualDependenciesReleaseWorker;
11+
use Symplify\MonorepoBuilder\Release\ReleaseWorker\TagVersionReleaseWorker;
12+
use Symplify\MonorepoBuilder\Release\ReleaseWorker\UpdateBranchAliasReleaseWorker;
13+
use Symplify\MonorepoBuilder\Release\ReleaseWorker\UpdateReplaceReleaseWorker;
14+
15+
return static function (MBConfig $mbConfig): void {
16+
// release workers - in order of execution
17+
$mbConfig->workers([
18+
UpdateReplaceReleaseWorker::class,
19+
SetCurrentMutualDependenciesReleaseWorker::class,
20+
AddTagToChangelogReleaseWorker::class,
21+
TagVersionReleaseWorker::class,
22+
PushTagReleaseWorker::class,
23+
SetNextMutualDependenciesReleaseWorker::class,
24+
UpdateBranchAliasReleaseWorker::class,
25+
PushNextDevReleaseWorker::class,
26+
]);
27+
};

0 commit comments

Comments
 (0)