|
| 1 | +# Weekly Release Tagging and Beta Deployment Workflow |
| 2 | +# =================================================== |
| 3 | + |
| 4 | +# Purpose: |
| 5 | +# - Automate weekly version tagging for consistent software versioning |
| 6 | +# - Trigger automated beta releases across multiple platforms |
| 7 | +# - Maintain a predictable release cycle |
| 8 | + |
| 9 | +# Workflow Overview: |
| 10 | +# - Runs automatically every Sunday at 4:00 AM UTC |
| 11 | +# - Supports manual triggering via workflow_dispatch |
| 12 | +# - Utilizes Gradle Reckon plugin for intelligent versioning |
| 13 | +# - Triggers multi-platform build and publish workflow |
| 14 | + |
| 15 | +# Key Features: |
| 16 | +# - Automatic semantic versioning |
| 17 | +# - Cross-platform release automation |
| 18 | +# - Configurable target branch for releases |
| 19 | +# - Full repository history checkout for accurate versioning |
| 20 | + |
| 21 | +# Versioning Strategy: |
| 22 | +# - Uses Reckon Gradle plugin for semantic versioning |
| 23 | +# - Generates production-ready (final) version tags |
| 24 | +# - Provides consistent and predictable version incrementation |
| 25 | + |
| 26 | +# Release Process: |
| 27 | +# 1. Checkout repository with full commit history |
| 28 | +# 2. Setup Java 17 development environment |
| 29 | +# 3. Create and push new version tag |
| 30 | +# 4. Trigger multi-platform build and publish workflow |
| 31 | + |
| 32 | +# Prerequisites: |
| 33 | +# - Gradle project configured with Reckon plugin |
| 34 | +# - Java 17 development environment |
| 35 | +# - Configured multi-platform build workflow |
| 36 | +# - GitHub Actions permissions for workflow dispatch |
| 37 | + |
| 38 | +# Workflow Inputs: |
| 39 | +# - target_branch: Branch to use for releases (default: 'dev') |
| 40 | +# Allows flexible release targeting across different branches |
| 41 | + |
| 42 | +# Security Considerations: |
| 43 | +# - Uses GitHub's native GITHUB_TOKEN for authentication |
| 44 | +# - Controlled workflow dispatch with specific inputs |
| 45 | +# - Limited to authorized repository members |
| 46 | + |
| 47 | +# Potential Use Cases: |
| 48 | +# - Regular software release cycles |
| 49 | +# - Automated beta testing distributions |
| 50 | +# - Consistent multi-platform deployment |
| 51 | + |
| 52 | +# Workflow Triggers: |
| 53 | +# - Scheduled weekly run (Sunday 4:00 AM UTC) |
| 54 | +# - Manual workflow dispatch |
| 55 | +# - Callable from other workflows |
| 56 | + |
| 57 | + |
| 58 | +# https://github.com/openMF/mifos-mobile-github-actions/blob/main/.github/workflows/tag-weekly-release.yaml |
| 59 | + |
| 60 | +# ############################################################################## |
| 61 | +# DON'T EDIT THIS FILE UNLESS NECESSARY # |
| 62 | +# ############################################################################## |
| 63 | + |
| 64 | +name: Tag Weekly Release |
| 65 | + |
| 66 | +on: |
| 67 | + # Allow manual triggering of the workflow |
| 68 | + workflow_dispatch: |
| 69 | + # Schedule the workflow to run weekly |
| 70 | + schedule: |
| 71 | + # Runs at 04:00 UTC every Sunday |
| 72 | + # Cron syntax: minute hour day-of-month month day-of-week |
| 73 | + - cron: '0 4 */2 * 0' |
| 74 | + |
| 75 | +concurrency: |
| 76 | + group: "weekly-release" |
| 77 | + cancel-in-progress: false |
| 78 | + |
| 79 | +jobs: |
| 80 | + tag: |
| 81 | + name: Tag Weekly Release |
| 82 | + uses: openMF/mifos-mobile-github-actions/.github/workflows/tag-weekly-release.yaml@main |
| 83 | + secrets: inherit |
| 84 | + with: |
| 85 | + target_branch: 'dev' |
0 commit comments