Skip to content

🚧Improve release workflows #34

🚧Improve release workflows

🚧Improve release workflows #34

name: ✅🤖Sync Bot & Status Check
defaults:
run:
shell: pwsh
on:
workflow_dispatch:
inputs:
run-type:
description: "The type of run to execute."
required: true
type: choice
options: ["Sync Bot", "Sync Status Check"]
issurOrPRNumber:
description: "Sync bot uses an issue # and the status check uses a pr #."
required: true
type: number
default: 0
issues:
types: [labeled, unlabeled, assigned, unassigned, milestoned, demilestoned]
# pull_request:
# branches: [main, preview]
jobs:
sync_bot_issue_change:
name: Sync Bot (Issue Change)
if: ${{ github.event.issue }}
runs-on: ubuntu-latest
steps:
- name: Set Up Deno
if: startsWith(github.ref_name, 'feature/')
uses: denoland/setup-deno@v1
with:
deno-version: v1.x
- name: Run Sync Bot (Issue Change)
if: startsWith(github.ref_name, 'feature/')
run: |
$scriptUrl = "${{ vars.SCRIPT_BASE_URL }}/${{ vars.CICD_SCRIPTS_VERSION }}/${{ vars.SCRIPT_RELATIVE_DIR_PATH}}/sync-bot-status-check.ts";
$issueNumber = "${{ github.event.issue.number }}";
echo "Project Name: ${{ vars.PROJECT_NAME }}";
echo "Issue: $issueNumber";
if ($manuallyExecuted -and $issueNumber -eq "0") {
echo "The issue or PR number must be a value greater than 0.";
exit 1;
}
deno run `
--allow-net `
"$scriptUrl" `
"${{ vars.PROJECT_NAME }}" `
"$issueNumber" `
"issue" `
"${{ secrets.CICD_REST_API }}";
sync_bot_manual_run:
name: Sync Bot (Manual Run)
if: (github.event_name == 'workflow_dispatch' && inputs.run-type == 'Sync Bot' && startsWith(github.head_ref, 'feature/'))
runs-on: ubuntu-latest
steps:
- name: Set Up Deno
uses: denoland/setup-deno@v1
with:
deno-version: v1.x
- name: Run Sync Bot (Manual Run)
if: startsWith(github.head_ref, 'feature/')
run: |
$scriptUrl = "${{ vars.SCRIPT_BASE_URL }}/${{ vars.CICD_SCRIPTS_VERSION }}/${{ vars.SCRIPT_RELATIVE_DIR_PATH}}/sync-bot-status-check.ts";
$issurOrPRNumber = "${{ inputs.issurOrPRNumber }}";
echo "Event Name: $eventName";
echo "Project Name: ${{ vars.PROJECT_NAME }}";
echo "PR Number: $issurOrPRNumber";
if ($manuallyExecuted -and $issurOrPRNumber -eq "0") {
echo "The issue or PR number must be a value greater than 0.";
exit 1;
}
deno run `
--allow-net `
"$scriptUrl" `
"${{ vars.PROJECT_NAME }}" `
"$issurOrPRNumber" `
"pr" `
"${{ secrets.CICD_REST_API }}";
status_check:
name: Sync Status Check
if: |
(github.event_name == 'pull_request' && startsWith(github.head_ref, 'feature/')) ||
(github.event_name == 'workflow_dispatch' && inputs.run-type == 'Sync Status Check' && startsWith(github.head_ref, 'feature/'))
runs-on: ubuntu-latest
steps:
- name: Set Up Deno
uses: denoland/setup-deno@v1
with:
deno-version: v1.x
- name: Run Sync Status Check
run: |
$scriptUrl = "${{ vars.SCRIPT_BASE_URL }}/${{ vars.CICD_SCRIPTS_VERSION }}/${{ vars.SCRIPT_RELATIVE_DIR_PATH}}/sync-bot-status-check.ts";
$eventName = "${{ github.event_name }}";
$manuallyExecuted = $eventName -eq "workflow_dispatch";
$prNumber = $manuallyExecuted ? "${{ inputs.issurOrPRNumber }}" : "${{ github.event.number }}";
echo "Event Name: $eventName";
echo "Project Name: ${{ vars.PROJECT_NAME }}";
echo "PR Number: $prNumber";
echo "Event Type: pr";
if ($manuallyExecuted -and $prNumber -eq "0") {
echo "The issue or PR number must be a value greater than 0.";
exit 1;
}
deno run `
--allow-net `
"$scriptUrl" `
"${{ vars.PROJECT_NAME }}" `
"$prNumber" `
"pr" `
"${{ secrets.CICD_REST_API }}";