Skip to content

Commit

Permalink
feat: Moving all subpackages into monorepo, added Github Actions for …
Browse files Browse the repository at this point in the history
…splitting repositories

BREAKING CHANGES: All roadiz/* sub packages source code will be hold in this repository. roadiz/* sub-packages will be read-only on Github.
  • Loading branch information
ambroisemaupate committed Mar 6, 2023
1 parent cadb95b commit 3e3f0f0
Show file tree
Hide file tree
Showing 20 changed files with 213 additions and 32 deletions.
72 changes: 72 additions & 0 deletions .github/workflows/run-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Unit tests, static analysis and code style

on:
push:
branches:
- develop
- 'release/**'
- 'hotfix/**'
tags: ['**']
pull_request:
types:
- opened
- reopened
- synchronize
- ready_for_review

jobs:
run-tests:
runs-on: ubuntu-latest
strategy:
matrix:
php-version: ['8.0', '8.1']
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
- uses: actions/checkout@v3
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v3
with:
path: vendor
key: ${{ runner.os }}-php-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-${{ matrix.php-version }}-
- name: Install Dependencies
run: composer install --no-scripts --no-ansi --no-interaction --no-progress
- name: Validate monorepo
run: >
vendor/bin/monorepo-builder validate
- name: Run unit tests
run: >
vendor/bin/atoum -d ./lib/Documents/tests
vendor/bin/atoum -f ./lib/EntityGenerator/tests/units/*
- name: Run PHP Code Sniffer
run: >
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/DocGenerator/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/Documents/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/DtsGenerator/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/EntityGenerator/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/Jwt/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/Markdown/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/Models/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/OpenId/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/Random/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/RoadizCompatBundle/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/RoadizCoreBundle/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/RoadizFontBundle/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/RoadizRozierBundle/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/RoadizUserBundle/src
php -d "memory_limit=-1" vendor/bin/phpcbf -p ./lib/Rozier/src
- name: Run PHP Stan
run: >
php -d "memory_limit=-1" vendor/bin/phpstan analyse -c phpstan.neon
- name: Run Twig lint
run: >
php -d "memory_limit=-1" bin/console lint:twig ./lib/Rozier/src/Resources/views
php -d "memory_limit=-1" bin/console lint:twig ./lib/Documents/src/Resources/views
php -d "memory_limit=-1" bin/console lint:twig ./lib/RoadizUserBundle/templates
php -d "memory_limit=-1" bin/console lint:twig ./lib/RoadizRozierBundle/templates
php -d "memory_limit=-1" bin/console lint:twig ./lib/RoadizFontBundle/templates
php -d "memory_limit=-1" bin/console lint:twig ./lib/RoadizCoreBundle/templates
105 changes: 105 additions & 0 deletions .github/workflows/split.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
name: 'Packages Split'

on:
push:
branches:
- main
- develop
tags:
- '*'

env:
# 1. for Github split -- Update secret on 2024-03-06
GITHUB_TOKEN: ${{ secrets.ROADIZ_SPLIT_ACCESS_TOKEN }}


jobs:
packages_split:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
# define package to repository map
package:
-
local_path: 'DocGenerator'
split_repository: 'doc-generator'
-
local_path: 'Documents'
split_repository: 'documents'
-
local_path: 'DtsGenerator'
split_repository: 'dts-generator'
-
local_path: 'EntityGenerator'
split_repository: 'entity-generator'
-
local_path: 'Jwt'
split_repository: 'jwt'
-
local_path: 'Markdown'
split_repository: 'markdown'
-
local_path: 'Models'
split_repository: 'models'
-
local_path: 'OpenId'
split_repository: 'openid'
-
local_path: 'Random'
split_repository: 'random'
-
local_path: 'RoadizCompatBundle'
split_repository: 'compat-bundle'
-
local_path: 'RoadizCoreBundle'
split_repository: 'core-bundle'
-
local_path: 'RoadizFontBundle'
split_repository: 'font-bundle'
-
local_path: 'RoadizRozierBundle'
split_repository: 'rozier-bundle'
-
local_path: 'RoadizUserBundle'
split_repository: 'user-bundle'
-
local_path: 'Rozier'
split_repository: 'rozier'


steps:
- uses: actions/checkout@v2

# no tag
- if: "!startsWith(github.ref, 'refs/tags/')"
uses: "symplify/[email protected]"
with:
# ↓ split "lib/local_path" directory
package_directory: 'lib/${{ matrix.package.local_path }}'

# ↓ into https://github.com/roadiz/split_repository repository
repository_organization: 'roadiz'
repository_name: '${{ matrix.package.split_repository }}'

# ↓ the user signed under the split commit
user_name: "roadiz-ci"
user_email: "[email protected]"

# with tag
- if: "startsWith(github.ref, 'refs/tags/')"
uses: "symplify/[email protected]"
with:
tag: ${GITHUB_REF#refs/tags/}

# ↓ split "lib/local_path" directory
package_directory: 'lib/${{ matrix.package.local_path }}'

# ↓ into https://github.com/roadiz/split_repository repository
repository_organization: 'roadiz'
repository_name: '${{ matrix.package.split_repository }}'

# ↓ the user signed under the split commit
user_name: "roadiz-ci"
user_email: "[email protected]"
30 changes: 15 additions & 15 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -140,21 +140,21 @@ fabric.properties
/.data/db_test/*
/.data/pgsql_test/*
/.data/solr/*
/lib/DocGenerator
/lib/Documents
/lib/DtsGenerator
/lib/EntityGenerator
/lib/Jwt
/lib/Markdown
/lib/Models
/lib/OpenId
/lib/Random
/lib/RoadizCompatBundle
/lib/RoadizCoreBundle
/lib/RoadizFontBundle
/lib/RoadizRozierBundle
/lib/RoadizUserBundle
/lib/Rozier
#/lib/DocGenerator
#/lib/Documents
#/lib/DtsGenerator
#/lib/EntityGenerator
#/lib/Jwt
#/lib/Markdown
#/lib/Models
#/lib/OpenId
#/lib/Random
#/lib/RoadizCompatBundle
#/lib/RoadizCoreBundle
#/lib/RoadizFontBundle
#/lib/RoadizRozierBundle
#/lib/RoadizUserBundle
#/lib/Rozier
/themes/BaseTheme
/public/themes/BaseTheme
/public/assets/*
Expand Down
21 changes: 4 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,10 @@
# Roadiz CoreBundle development app
# Roadiz development monorepo

This is development app for Roadiz v2. It aggregates all Roadiz bundle and main repositories in one place.

### Install

- Clone this repository
- Clone roadiz/compat-bundle in `lib/RoadizCompatBundle` directory
- Clone roadiz/core-bundle in `lib/RoadizCoreBundle` directory
- Clone roadiz/doc-generator in `lib/DocGenerator` directory
- Clone roadiz/documents in `lib/Documents` directory
- Clone roadiz/dts-generator in `lib/DtsGenerator` directory
- Clone roadiz/entity-generator in `lib/EntityGenerator` directory
- Clone roadiz/font-bundle in `lib/RoadizFontBundle` directory
- Clone roadiz/jwt in `lib/Jwt` directory
- Clone roadiz/markdown in `lib/Markdown` directory
- Clone roadiz/models in `lib/Models` directory
- Clone roadiz/openid in `lib/OpenId` directory
- Clone roadiz/random in `lib/Random` directory
- Clone roadiz/rozier in `lib/Rozier` directory
- Clone roadiz/rozier-bundle in `lib/RoadizRozierBundle` directory
- Clone roadiz/user-bundle in `lib/RoadizUserBundle` directory
- Clone this repository containing all monorepo packages in `lib` directory

### Generate JWT private and public keys

Expand Down Expand Up @@ -57,5 +42,7 @@ Note that _phpstan_ can issue wrong errors if your `lib/*` bundles are symlinked

### Monorepo tools

Roadiz development env uses: https://github.com/symplify/monorepo-builder

- `vendor/bin/monorepo-builder merge`: Makes sure all your packages deps are in development repository and
- `vendor/bin/monorepo-builder validate`: Make sure all your packages use the same version
1 change: 1 addition & 0 deletions lib/DocGenerator
Submodule DocGenerator added at fd0390
1 change: 1 addition & 0 deletions lib/Documents
Submodule Documents added at bc335d
1 change: 1 addition & 0 deletions lib/DtsGenerator
Submodule DtsGenerator added at 28efe3
1 change: 1 addition & 0 deletions lib/EntityGenerator
Submodule EntityGenerator added at fc27fa
1 change: 1 addition & 0 deletions lib/Jwt
Submodule Jwt added at 0b23d1
1 change: 1 addition & 0 deletions lib/Markdown
Submodule Markdown added at dd2d28
1 change: 1 addition & 0 deletions lib/Models
Submodule Models added at cde85e
1 change: 1 addition & 0 deletions lib/OpenId
Submodule OpenId added at ddb954
1 change: 1 addition & 0 deletions lib/Random
Submodule Random added at 3444ef
1 change: 1 addition & 0 deletions lib/RoadizCompatBundle
Submodule RoadizCompatBundle added at e7c8b8
1 change: 1 addition & 0 deletions lib/RoadizCoreBundle
Submodule RoadizCoreBundle added at 3c4971
1 change: 1 addition & 0 deletions lib/RoadizFontBundle
Submodule RoadizFontBundle added at 33ca5c
1 change: 1 addition & 0 deletions lib/RoadizRozierBundle
Submodule RoadizRozierBundle added at 2f5df5
1 change: 1 addition & 0 deletions lib/RoadizUserBundle
Submodule RoadizUserBundle added at 440bed
1 change: 1 addition & 0 deletions lib/Rozier
Submodule Rozier added at 76d192
2 changes: 2 additions & 0 deletions monorepo-builder.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
use Symplify\MonorepoBuilder\ValueObject\Option;

return static function (MBConfig $mbConfig): void {
$mbConfig->packageAliasFormat('<major>.<minor>.x-dev');

$mbConfig->packageDirectories([__DIR__ . '/lib']);

// Using packageDirectoriesExcludes does not work with bower_components
Expand Down

0 comments on commit 3e3f0f0

Please sign in to comment.