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