Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 010d3dcbcf | |||
| 8242e5713a | |||
| a7220ddb2b |
@@ -39,17 +39,10 @@ jobs:
|
|||||||
deploy:
|
deploy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Verify dev environment is healthy
|
# NOTE: removed a "Verify dev environment is healthy" gate that curled
|
||||||
run: |
|
# git.dev and `exit 1` on failure — gating a PROD deploy on a live DEV
|
||||||
echo "Checking git.dev.mokoconsulting.tech health..."
|
# health check is a cross-tier false-negative (a transient dev blip blocked
|
||||||
if curl -sf --max-time 10 https://git.dev.mokoconsulting.tech/api/healthz; then
|
# prod). Pre-prod validation is the dev -> rc -> main pipeline + RC env.
|
||||||
echo " Dev environment is healthy — proceeding with production deploy"
|
|
||||||
else
|
|
||||||
echo "::error::Dev environment is NOT healthy — blocking production deploy"
|
|
||||||
echo "Deploy to dev first (push to dev branch) and verify it passes before merging to main."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Checkout source (for version detection)
|
- name: Checkout source (for version detection)
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
@@ -66,17 +59,19 @@ jobs:
|
|||||||
ENV="${{ github.event.inputs.environment }}"
|
ENV="${{ github.event.inputs.environment }}"
|
||||||
fi
|
fi
|
||||||
if [ "$ENV" = "production" ]; then
|
if [ "$ENV" = "production" ]; then
|
||||||
echo "compose_dir=/opt/gitea" >> $GITHUB_OUTPUT
|
echo "compose_dir=/opt/gitea-dev" >> $GITHUB_OUTPUT
|
||||||
echo "container=mokogitea" >> $GITHUB_OUTPUT
|
echo "container=mokogitea" >> $GITHUB_OUTPUT
|
||||||
echo "source_dir=/opt/gitea/source" >> $GITHUB_OUTPUT
|
echo "source_dir=/opt/gitea/source" >> $GITHUB_OUTPUT
|
||||||
echo "branch=main" >> $GITHUB_OUTPUT
|
echo "branch=main" >> $GITHUB_OUTPUT
|
||||||
echo "tag=$VERSION" >> $GITHUB_OUTPUT
|
echo "tag=$VERSION" >> $GITHUB_OUTPUT
|
||||||
|
echo "tag_env=MOKOGITEA_TAG" >> $GITHUB_OUTPUT
|
||||||
else
|
else
|
||||||
echo "compose_dir=/opt/gitea-dev" >> $GITHUB_OUTPUT
|
echo "compose_dir=/opt/gitea-dev" >> $GITHUB_OUTPUT
|
||||||
echo "container=mokogitea-dev" >> $GITHUB_OUTPUT
|
echo "container=mokogitea-dev" >> $GITHUB_OUTPUT
|
||||||
echo "source_dir=/opt/gitea-dev/source" >> $GITHUB_OUTPUT
|
echo "source_dir=/opt/gitea-dev/source" >> $GITHUB_OUTPUT
|
||||||
echo "branch=dev" >> $GITHUB_OUTPUT
|
echo "branch=dev" >> $GITHUB_OUTPUT
|
||||||
echo "tag=$VERSION-dev" >> $GITHUB_OUTPUT
|
echo "tag=$VERSION-dev" >> $GITHUB_OUTPUT
|
||||||
|
echo "tag_env=MOKOGITEA_DEV_TAG" >> $GITHUB_OUTPUT
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Write deploy key
|
- name: Write deploy key
|
||||||
@@ -95,6 +90,7 @@ jobs:
|
|||||||
SOURCE_DIR: ${{ steps.config.outputs.source_dir }}
|
SOURCE_DIR: ${{ steps.config.outputs.source_dir }}
|
||||||
COMPOSE_DIR: ${{ steps.config.outputs.compose_dir }}
|
COMPOSE_DIR: ${{ steps.config.outputs.compose_dir }}
|
||||||
CONTAINER: ${{ steps.config.outputs.container }}
|
CONTAINER: ${{ steps.config.outputs.container }}
|
||||||
|
TAG_ENV: ${{ steps.config.outputs.tag_env }}
|
||||||
run: |
|
run: |
|
||||||
HEALTH_FMT='${{ '{{' }}.State.Health.Status${{ '}}' }}'
|
HEALTH_FMT='${{ '{{' }}.State.Health.Status${{ '}}' }}'
|
||||||
IMAGE_FMT='Image: ${{ '{{' }}.Config.Image${{ '}}' }}'
|
IMAGE_FMT='Image: ${{ '{{' }}.Config.Image${{ '}}' }}'
|
||||||
@@ -134,8 +130,12 @@ jobs:
|
|||||||
|
|
||||||
echo 'Restarting container...'
|
echo 'Restarting container...'
|
||||||
cd $COMPOSE_DIR
|
cd $COMPOSE_DIR
|
||||||
sed -i 's|${{ env.IMAGE }}:[^ ]*|${{ env.IMAGE }}:$TAG|' docker-compose.yml
|
# Drive ONLY the target service's tag via its compose env-var (no sed —
|
||||||
docker compose up -d $CONTAINER
|
# a blanket 'sed s|mokogitea:...|' clobbered the dev + rc service tags too).
|
||||||
|
# Remove any lingering fixed-name container first (avoids the "name already
|
||||||
|
# in use" conflict), then force-recreate under the shared compose project.
|
||||||
|
docker rm -f $CONTAINER 2>/dev/null || true
|
||||||
|
env $TAG_ENV="$TAG" docker compose -p gitea-dev up -d --force-recreate $CONTAINER
|
||||||
|
|
||||||
echo 'Health check...'
|
echo 'Health check...'
|
||||||
for i in 1 2 3 4 5 6 7 8; do
|
for i in 1 2 3 4 5 6 7 8; do
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user