parent
529aa11b8c
commit
27d51de244
@ -1,96 +1,103 @@
|
|||||||
|
---
|
||||||
name: Weekly Scheduled Release Tag
|
name: Weekly Scheduled Release Tag
|
||||||
|
|
||||||
on:
|
on:
|
||||||
schedule:
|
schedule:
|
||||||
- cron: '0 0 * * 0' # Runs every Sunday at midnight UTC
|
- cron: 0 0 * * 0
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
inputs:
|
||||||
release_type:
|
release_type:
|
||||||
description: 'Type of release (weekly/manual)'
|
description: Type of release (weekly/manual)
|
||||||
required: true
|
required: true
|
||||||
default: 'weekly'
|
default: weekly
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
- name: Check for new commits
|
||||||
- name: Check for new commits
|
id: check_commits
|
||||||
id: check_commits
|
run: |
|
||||||
run: |
|
git fetch --depth=1 origin +refs/heads/main:refs/remotes/origin/main
|
||||||
git fetch --depth=1 origin +refs/heads/main:refs/remotes/origin/main
|
COMMIT_COUNT=$(git rev-list --count HEAD...origin/main)
|
||||||
COMMIT_COUNT=$(git rev-list --count HEAD...origin/main)
|
COMMIT_MESSAGES=$(git log --pretty=format:"%s" HEAD...origin/main)
|
||||||
COMMIT_MESSAGES=$(git log --pretty=format:"%s" HEAD...origin/main)
|
echo "::set-output name=commit_count::$COMMIT_COUNT"
|
||||||
echo "::set-output name=commit_count::$COMMIT_COUNT"
|
echo "::set-output name=commit_messages::$COMMIT_MESSAGES"
|
||||||
echo "::set-output name=commit_messages::$COMMIT_MESSAGES"
|
- name: Create weekly release tag
|
||||||
|
id: create_weekly_release
|
||||||
- name: Create weekly release tag
|
if: steps.check_commits.outputs.commit_count > 0 &&
|
||||||
id: create_weekly_release
|
github.event.inputs.release_type == 'weekly'
|
||||||
if: steps.check_commits.outputs.commit_count > 0 && github.event.inputs.release_type == 'weekly'
|
run: |
|
||||||
run: |
|
week_number=$(date +'%V')
|
||||||
week_number=$(date +'%V')
|
tag_name="${{ github.event.created.year }}.${week_number}"
|
||||||
tag_name="${{ github.event.created.year }}.${week_number}"
|
echo "::set-output name=tag_name::$tag_name"
|
||||||
echo "::set-output name=tag_name::$tag_name"
|
release_name="Weekly Release $week_number"
|
||||||
release_name="Weekly Release $week_number"
|
echo "::set-output name=release_name::$release_name"
|
||||||
echo "::set-output name=release_name::$release_name"
|
- name: Create manual release tag
|
||||||
|
id: create_manual_release
|
||||||
- name: Create manual release tag
|
if: github.event_name == 'workflow_dispatch' && github.event.inputs.release_type
|
||||||
id: create_manual_release
|
== 'manual'
|
||||||
if: github.event_name == 'workflow_dispatch' && github.event.inputs.release_type == 'manual'
|
run: >
|
||||||
run: |
|
week_number=$(date +'%V')
|
||||||
week_number=$(date +'%V')
|
|
||||||
day_of_week=$(date +'%u')
|
day_of_week=$(date +'%u')
|
||||||
tag_name="${{ github.event.created.year }}.${week_number}.${day_of_week}"
|
|
||||||
echo "::set-output name=tag_name::$tag_name"
|
tag_name="${{ github.event.created.year }}.${week_number}.${day_of_week}"
|
||||||
release_name="Manual Release ${{ github.event.created.toISOString() }}"
|
|
||||||
echo "::set-output name=release_name::$release_name"
|
echo "::set-output name=tag_name::$tag_name"
|
||||||
|
|
||||||
- name: Get week number
|
release_name="Manual Release ${{ github.event.created.toISOString() }}"
|
||||||
id: get_week
|
|
||||||
run: echo "::set-output name=week::$(date +'%V')"
|
echo "::set-output name=release_name::$release_name"
|
||||||
shell: bash
|
- name: Get week number
|
||||||
|
id: get_week
|
||||||
|
run: echo "::set-output name=week::$(date +'%V')"
|
||||||
|
shell: bash
|
||||||
|
|
||||||
manual_release:
|
manual_release:
|
||||||
name: Manual Release
|
name: Manual Release
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: build
|
needs: build
|
||||||
if: github.event_name == 'workflow_dispatch' && github.event.inputs.release_type == 'manual'
|
if: github.event_name == 'workflow_dispatch' && github.event.inputs.release_type
|
||||||
|
== 'manual'
|
||||||
steps:
|
steps:
|
||||||
- name: Create manual release
|
- name: Create manual release
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
with:
|
with:
|
||||||
files: ''
|
files: ""
|
||||||
tag_name: ${{ steps.create_manual_release.outputs.tag_name }}
|
tag_name: ${{ steps.create_manual_release.outputs.tag_name }}
|
||||||
name: ${{ steps.create_manual_release.outputs.release_name }}
|
name: ${{ steps.create_manual_release.outputs.release_name }}
|
||||||
body: |
|
body: >
|
||||||
New manual release created on ${{ github.event.created.toISOString() }}.
|
New manual release created on ${{ github.event.created.toISOString() }}.
|
||||||
|
|
||||||
|
|
||||||
|
Latest commits:
|
||||||
|
|
||||||
Latest commits:
|
${{ steps.check_commits.outputs.commit_messages }}
|
||||||
${{ steps.check_commits.outputs.commit_messages }}
|
draft: false
|
||||||
draft: false
|
prerelease: false
|
||||||
prerelease: false
|
|
||||||
|
|
||||||
weekly_release:
|
weekly_release:
|
||||||
name: Weekly Release
|
name: Weekly Release
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: build
|
needs: build
|
||||||
if: steps.check_commits.outputs.commit_count > 0 && github.event.inputs.release_type == 'weekly'
|
if: steps.check_commits.outputs.commit_count > 0 &&
|
||||||
|
github.event.inputs.release_type == 'weekly'
|
||||||
steps:
|
steps:
|
||||||
- name: Create weekly release
|
- name: Create weekly release
|
||||||
uses: softprops/action-gh-release@v1
|
uses: softprops/action-gh-release@v1
|
||||||
with:
|
with:
|
||||||
files: ''
|
files: ""
|
||||||
tag_name: ${{ steps.create_weekly_release.outputs.tag_name }}
|
tag_name: ${{ steps.create_weekly_release.outputs.tag_name }}
|
||||||
name: ${{ steps.create_weekly_release.outputs.release_name }}
|
name: ${{ steps.create_weekly_release.outputs.release_name }}
|
||||||
body: |
|
body: >
|
||||||
New weekly release created automatically for week ${{ steps.get_week.outputs.week }}.
|
New weekly release created automatically for week ${{
|
||||||
|
steps.get_week.outputs.week }}.
|
||||||
|
|
||||||
|
|
||||||
|
Latest commits:
|
||||||
|
|
||||||
Latest commits:
|
${{ steps.check_commits.outputs.commit_messages }}
|
||||||
${{ steps.check_commits.outputs.commit_messages }}
|
draft: false
|
||||||
draft: false
|
prerelease: false
|
||||||
prerelease: false
|
|
||||||
|
Loading…
Reference in new issue