Public Access
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a48be3ff87 | |||
| 51f8fcb480 | |||
| dfb3ca876b | |||
| e2e9f6d33b | |||
| 9f0546c1a8 | |||
| 3167233b7c | |||
| 94e6084e0f | |||
| 55a82d7d21 | |||
| 88acf57278 | |||
| ac293fd038 |
@@ -382,7 +382,7 @@ jobs:
|
|||||||
content = open('CHANGELOG.md').read()
|
content = open('CHANGELOG.md').read()
|
||||||
old = '## [Unreleased]'
|
old = '## [Unreleased]'
|
||||||
new = f'## [Unreleased]\n\n## [{version}] --- {date}'
|
new = f'## [Unreleased]\n\n## [{version}] --- {date}'
|
||||||
content = content.replace(old, new, 1)
|
content = content if ('## [' + version + ']') in content else content.replace(old, new, 1)
|
||||||
open('CHANGELOG.md', 'w').write(content)
|
open('CHANGELOG.md', 'w').write(content)
|
||||||
" "$VERSION" "$DATE"
|
" "$VERSION" "$DATE"
|
||||||
git add CHANGELOG.md
|
git add CHANGELOG.md
|
||||||
|
|||||||
@@ -131,10 +131,11 @@ jobs:
|
|||||||
test:
|
test:
|
||||||
name: Tests
|
name: Tests
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: lint
|
# Independent job (no `needs: lint`): the Gitea Actions scheduler does not
|
||||||
# Run only when lint succeeded; always() forces evaluation so a skipped
|
# offer the dependent 2nd job of a needs-chain to runners, so it stalls in
|
||||||
# lint (e.g. template repos) skips this job cleanly instead of hanging.
|
# "waiting" and is reaped by ABANDONED_JOB_TIMEOUT. Guard template repos
|
||||||
if: ${{ always() && needs.lint.result == 'success' }}
|
# directly (same condition lint uses) instead of gating on lint's result.
|
||||||
|
if: ${{ !startsWith(github.event.repository.name, 'Template-') }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
#
|
#
|
||||||
# FILE INFORMATION
|
# FILE INFORMATION
|
||||||
# DEFGROUP: Gitea.Workflow
|
# DEFGROUP: MokoGitea.Workflow
|
||||||
# INGROUP: mokocli.Automation
|
# INGROUP: mokocli.Automation
|
||||||
# VERSION: 01.00.00
|
# VERSION: 01.00.00
|
||||||
# BRIEF: Auto-create feature branch when an issue is opened
|
# BRIEF: Auto-create feature branch when an issue is opened
|
||||||
|
|||||||
@@ -210,7 +210,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Check for merge conflict markers
|
- name: Check for merge conflict markers
|
||||||
run: |
|
run: |
|
||||||
CONFLICTS=$(grep -rn '<<<<<<< \|>>>>>>> \|^=======$' --include='*.php' --include='*.xml' --include='*.css' --include='*.js' --include='*.json' --include='*.md' --include='*.yml' --include='*.yaml' --include='*.ini' --include='*.txt' . 2>/dev/null | grep -v '.git/' || true)
|
CONFLICTS=$(grep -rn '<<<<<<< \|>>>>>>> \|^=======$' --exclude-dir='.git' --exclude-dir='.mokogitea' --include='*.php' --include='*.xml' --include='*.css' --include='*.js' --include='*.json' --include='*.md' --include='*.yml' --include='*.yaml' --include='*.ini' --include='*.txt' . 2>/dev/null | grep -v '.git/' || true)
|
||||||
if [ -n "$CONFLICTS" ]; then
|
if [ -n "$CONFLICTS" ]; then
|
||||||
echo "::error::Merge conflict markers found in source files"
|
echo "::error::Merge conflict markers found in source files"
|
||||||
echo "## Conflict Markers Found" >> $GITHUB_STEP_SUMMARY
|
echo "## Conflict Markers Found" >> $GITHUB_STEP_SUMMARY
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
# INGROUP: mokocli.Release
|
# INGROUP: mokocli.Release
|
||||||
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
|
# REPO: https://git.mokoconsulting.tech/MokoConsulting/Template-Generic
|
||||||
# PATH: /.mokogitea/workflows/pre-release.yml
|
# PATH: /.mokogitea/workflows/pre-release.yml
|
||||||
# VERSION: 05.02.00
|
# VERSION: 05.02.01
|
||||||
# BRIEF: Auto pre-release on push to dev/alpha/beta/rc branches
|
# BRIEF: Auto pre-release on push to dev/alpha/beta/rc branches
|
||||||
|
|
||||||
name: "Universal: Pre-Release"
|
name: "Universal: Pre-Release"
|
||||||
@@ -162,7 +162,13 @@ jobs:
|
|||||||
git add -A
|
git add -A
|
||||||
git diff --cached --quiet || {
|
git diff --cached --quiet || {
|
||||||
git commit -m "chore(version): pre-release bump to ${VERSION} [skip ci]"
|
git commit -m "chore(version): pre-release bump to ${VERSION} [skip ci]"
|
||||||
git push origin HEAD 2>&1
|
# Push the bump commit, but do NOT fail the release if the target branch
|
||||||
|
# is protected and the release identity is not on the push allowlist.
|
||||||
|
# The build proceeds from the in-tree bumped version regardless; if the
|
||||||
|
# push is rejected, the next run simply re-bumps from the same base.
|
||||||
|
if ! git push origin HEAD 2>&1; then
|
||||||
|
echo "::warning::Version-bump commit could not be pushed (protected branch?). Building from in-tree version ${VERSION} anyway."
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Auto-detect element via manifest_element.php
|
# Auto-detect element via manifest_element.php
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ class ClientDashboardCli extends CliFramework
|
|||||||
$name = $repo['name'] ?? '';
|
$name = $repo['name'] ?? '';
|
||||||
|
|
||||||
if (
|
if (
|
||||||
!str_starts_with($name, 'client-waas-')
|
!str_starts_with($name, 'client-waas-') && !str_starts_with($name, 'client-mokosuite-')
|
||||||
|| !empty($repo['archived'])
|
|| !empty($repo['archived'])
|
||||||
) {
|
) {
|
||||||
continue;
|
continue;
|
||||||
@@ -135,7 +135,7 @@ class ClientDashboardCli extends CliFramework
|
|||||||
|
|
||||||
$clients[] = [
|
$clients[] = [
|
||||||
'repo' => $repo['full_name'] ?? '',
|
'repo' => $repo['full_name'] ?? '',
|
||||||
'name' => str_replace('client-waas-', '', $name),
|
'name' => str_replace(['client-waas-', 'client-mokosuite-'], '', $name),
|
||||||
'description' => $repo['description'] ?? '',
|
'description' => $repo['description'] ?? '',
|
||||||
'updated' => $repo['updated_at'] ?? '',
|
'updated' => $repo['updated_at'] ?? '',
|
||||||
'url' => $repo['html_url'] ?? '',
|
'url' => $repo['html_url'] ?? '',
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ class ClientInventoryCli extends CliFramework
|
|||||||
foreach ($repos as $repo) {
|
foreach ($repos as $repo) {
|
||||||
$repoName = $repo['name'] ?? '';
|
$repoName = $repo['name'] ?? '';
|
||||||
|
|
||||||
if (strpos($repoName, 'client-waas') === false) {
|
if (strpos($repoName, 'client-waas') === false && strpos($repoName, 'client-mokosuite') === false) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ class ClientProvisionCli extends CliFramework
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->repoName = 'client-waas-' . $clientName;
|
$this->repoName = 'client-mokosuite-' . $clientName;
|
||||||
|
|
||||||
$this->log('INFO', "=== Client Provisioning: {$clientName} ===");
|
$this->log('INFO', "=== Client Provisioning: {$clientName} ===");
|
||||||
$this->log('INFO', " Org: {$this->org}");
|
$this->log('INFO', " Org: {$this->org}");
|
||||||
@@ -156,7 +156,7 @@ class ClientProvisionCli extends CliFramework
|
|||||||
$resp = $this->giteaApi(
|
$resp = $this->giteaApi(
|
||||||
'POST',
|
'POST',
|
||||||
'/api/v1/repos/MokoConsulting/'
|
'/api/v1/repos/MokoConsulting/'
|
||||||
. 'Template-Client-WaaS/generate',
|
. 'Template-Client/generate',
|
||||||
$payload
|
$payload
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
* REPO: https://git.mokoconsulting.tech/MokoConsulting/mokocli
|
* REPO: https://git.mokoconsulting.tech/MokoConsulting/mokocli
|
||||||
* PATH: /cli/scaffold_client.php
|
* PATH: /cli/scaffold_client.php
|
||||||
* VERSION: 09.43.00
|
* VERSION: 09.43.00
|
||||||
* BRIEF: Scaffold a new client-waas repo from Template-Client-WaaS with pre-configured settings
|
* BRIEF: Scaffold a new client-waas repo from Template-Client with pre-configured settings
|
||||||
*/
|
*/
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
@@ -26,7 +26,7 @@ class ScaffoldClientCli extends CliFramework
|
|||||||
{
|
{
|
||||||
protected function configure(): void
|
protected function configure(): void
|
||||||
{
|
{
|
||||||
$this->setDescription('Scaffold a new client-waas repo from Template-Client-WaaS');
|
$this->setDescription('Scaffold a new client-waas repo from Template-Client');
|
||||||
$this->addArgument('--name', 'Client name', '');
|
$this->addArgument('--name', 'Client name', '');
|
||||||
$this->addArgument('--org', 'Gitea organization', '');
|
$this->addArgument('--org', 'Gitea organization', '');
|
||||||
$this->addArgument('--gitea-url', 'Gitea URL', 'https://git.mokoconsulting.tech');
|
$this->addArgument('--gitea-url', 'Gitea URL', 'https://git.mokoconsulting.tech');
|
||||||
@@ -47,7 +47,7 @@ class ScaffoldClientCli extends CliFramework
|
|||||||
$this->log('INFO', "Scaffolding client repo: {$org}/{$repoName}");
|
$this->log('INFO', "Scaffolding client repo: {$org}/{$repoName}");
|
||||||
$this->log('INFO', "Gitea URL: {$giteaUrl}");
|
$this->log('INFO', "Gitea URL: {$giteaUrl}");
|
||||||
if ($this->dryRun) {
|
if ($this->dryRun) {
|
||||||
$this->log('INFO', '[DRY RUN] Would create repo from template MokoConsulting/Template-Client-WaaS');
|
$this->log('INFO', '[DRY RUN] Would create repo from template MokoConsulting/Template-Client');
|
||||||
$this->log('INFO', "[DRY RUN] Repo: {$org}/{$repoName}");
|
$this->log('INFO', "[DRY RUN] Repo: {$org}/{$repoName}");
|
||||||
$this->printPostSetupInstructions($repoName, $giteaUrl, $org);
|
$this->printPostSetupInstructions($repoName, $giteaUrl, $org);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -64,7 +64,7 @@ class ScaffoldClientCli extends CliFramework
|
|||||||
]);
|
]);
|
||||||
$response = $this->apiRequest(
|
$response = $this->apiRequest(
|
||||||
'POST',
|
'POST',
|
||||||
"/api/v1/repos/MokoConsulting/Template-Client-WaaS/generate",
|
"/api/v1/repos/MokoConsulting/Template-Client/generate",
|
||||||
$giteaUrl,
|
$giteaUrl,
|
||||||
$token,
|
$token,
|
||||||
$createPayload
|
$createPayload
|
||||||
|
|||||||
@@ -934,7 +934,7 @@ class RepositorySynchronizer
|
|||||||
'mcp' => 'MokoConsulting/Template-Generic',
|
'mcp' => 'MokoConsulting/Template-Generic',
|
||||||
'dolibarr' => 'MokoConsulting/Template-Generic',
|
'dolibarr' => 'MokoConsulting/Template-Generic',
|
||||||
'crm-module' => 'MokoConsulting/Template-Generic',
|
'crm-module' => 'MokoConsulting/Template-Generic',
|
||||||
'client' => 'MokoConsulting/Template-Client-WaaS',
|
'client' => 'MokoConsulting/Template-Client',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -951,7 +951,7 @@ class RepositorySynchronizer
|
|||||||
*/
|
*/
|
||||||
private const TEMPLATE_SYNC_TARGETS = [
|
private const TEMPLATE_SYNC_TARGETS = [
|
||||||
'MokoConsulting/Template-Joomla',
|
'MokoConsulting/Template-Joomla',
|
||||||
'MokoConsulting/Template-Client-WaaS',
|
'MokoConsulting/Template-Client',
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ else
|
|||||||
["MokoConsulting/ssh-mcp"]="ssh-mcp"
|
["MokoConsulting/ssh-mcp"]="ssh-mcp"
|
||||||
["MokoConsulting/backup-mcp"]="backup-mcp"
|
["MokoConsulting/backup-mcp"]="backup-mcp"
|
||||||
["MokoConsulting/joomla-api-mcp"]="joomla-api-mcp"
|
["MokoConsulting/joomla-api-mcp"]="joomla-api-mcp"
|
||||||
["MokoConsulting/Template-Client-WaaS"]="Template-Client-WaaS"
|
["MokoConsulting/Template-Client"]="Template-Client"
|
||||||
["ClarksvilleFurs/client-waas-clarksvillefurs"]="client-clarksvillefurs"
|
["ClarksvilleFurs/client-waas-clarksvillefurs"]="client-clarksvillefurs"
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user