Skip to content

sort

sort #5

# Version: v1.8

Check failure on line 1 in .github/workflows/sh-upgrade-environment.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/sh-upgrade-environment.yml

Invalid workflow file

(Line: 22, Col: 9): Required property is missing: type, (Line: 24, Col: 9): Required property is missing: type
# Reusable Workflow for Environment Upgrade (Linux)
# Can be called from other workflows to upgrade environments
# Packages must be built and validated prior to upgrade
name: Reusable Upgrade Environment (Linux)
on:
workflow_call:
inputs:
agent_jar_path:
description: 'Path to DBmaestro Agent JAR file'
required: false
type: string
default: '/opt/dbmaestro/agent/DBmaestroAgent.jar'
auth_type:
description: 'Authentication type'
required: false
type: string
default: 'DBmaestroAccount'
dbmaestro_server:
required: true
dbmaestro_user:
required: true
detect_from_push:
description: 'Detect changed packages from git push (true/false)'
required: false
type: boolean
default: false
is_pull_request:
description: 'Is this a pull request event (true/false)'
required: false
type: boolean
default: false
package_name:
description: 'Package name list to upgrade (comma-separated for multiple packages)'
required: false
type: string
default: ''
project_name:
description: 'DBmaestro project name'
required: false
type: string
default: 'Demo-PSQL'
runner:
description: 'Runner type (ubuntu-latest or self-hosted)'
required: false
type: string
default: 'ubuntu-latest'
target_environment:
description: 'Target environment for upgrade'
required: true
type: string
use_ssl:
description: 'Use SSL for DBmaestro connection'
required: false
type: string
default: 'True'
secrets:
DBMAESTRO_PASSWORD:
required: true
outputs:
upgraded_packages:
description: 'List of packages that were upgraded'
value: ${{ jobs.detect_changed_packages.outputs.packages_list }}
env:
GIT_DEPTH: 1
jobs:
# Detect changed packages from push or workflow input
detect_changed_packages:
name: Detect Changed Packages
runs-on: ${{ inputs.runner }}
if: ${{ !inputs.is_pull_request }}
outputs:
matrix: ${{ steps.detect.outputs.matrix }}
has_packages: ${{ steps.detect.outputs.has_packages }}
packages_list: ${{ steps.detect.outputs.packages_list }}
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Detect Changed Packages
id: detect
uses: DBMaestroDev/github/.github/actions/sh/detect-changed-packages@v1
with:
package_name: ${{ inputs.package_name }}
detect_from_push: ${{ inputs.detect_from_push }}
# Detect changed packages for pull requests
detect_changed_packages_pr:
name: Detect Changed Packages (Pull Request)
runs-on: ${{ inputs.runner }}
if: ${{ inputs.is_pull_request }}
outputs:
packages: ${{ steps.detect-pr.outputs.packages }}
packages_list: ${{ steps.detect-pr.outputs.packages_list }}
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Detect Changed Folders in packages/
id: detect-pr
uses: DBMaestroDev/github/.github/actions/sh/detect-changed-packages@v1
with:
is_pull_request: true
# Comment on PR with detected packages
comment_pr:
name: Comment PR with Detected Changed Packages
runs-on: ubuntu-latest
if: ${{ inputs.is_pull_request }}
needs: detect_changed_packages_pr
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Post PR Comment
uses: DBMaestroDev/github/.github/actions/sh/pr-comment@v1
with:
packages_list: ${{ needs.detect_changed_packages_pr.outputs.packages_list }}
environment_name: ${{ inputs.target_environment }}
github_token: ${{ secrets.GITHUB_TOKEN }}
# Upgrade environment with detected packages
upgrade_environment:
name: Upgrade Environment
runs-on: ${{ inputs.runner }}
needs: detect_changed_packages
if: |
!inputs.is_pull_request &&
needs.detect_changed_packages.outputs.has_packages == 'true'
strategy:
max-parallel: 1
matrix:
item: ${{ fromJson(needs.detect_changed_packages.outputs.matrix) }}
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Upgrade Package
uses: DBMaestroDev/github/.github/actions/sh/upgrade-environment@v1
with:
agent_jar_path: ${{ inputs.agent_jar_path }}
auth_type: ${{ inputs.auth_type }}
DBMAESTRO_PASSWORD: ${{ secrets.DBMAESTRO_PASSWORD }}
dbmaestro_server: ${{ vars.DBMAESTRO_SERVER }}
dbmaestro_user: ${{ vars.DBMAESTRO_USER }}
package_name: ${{ matrix.item.package }}
project_name: ${{ inputs.project_name }}
target_environment: ${{ inputs.target_environment }}
use_ssl: ${{ inputs.use_ssl }}