🚧Improve release workflows #34
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }}"; |