Disable Deployments (#513)
This commit is contained in:
parent
b50726d044
commit
54da08f873
5 changed files with 0 additions and 556 deletions
39
.github/workflows/porter_app_worker_4828.yml
vendored
39
.github/workflows/porter_app_worker_4828.yml
vendored
|
|
@ -1,39 +0,0 @@
|
|||
"on":
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
name: Deploy to staging
|
||||
jobs:
|
||||
porter-deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set Github tag
|
||||
id: vars
|
||||
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Setup porter
|
||||
uses: porter-dev/setup-porter@v0.1.0
|
||||
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
|
||||
- name: Build Dist
|
||||
run: make full-dist
|
||||
|
||||
- name: Deploy stack
|
||||
timeout-minutes: 30
|
||||
run: exec porter apply -f porter/staging.yaml
|
||||
env:
|
||||
PORTER_APP_NAME: worker
|
||||
PORTER_CLUSTER: "4828"
|
||||
PORTER_DEPLOYMENT_TARGET_ID: 9da4edac-88d4-4409-afe7-e885dd64d6f0
|
||||
PORTER_HOST: https://dashboard.porter.run
|
||||
PORTER_PR_NUMBER: ${{ github.event.number }}
|
||||
PORTER_PROJECT: "15823"
|
||||
PORTER_REPO_NAME: ${{ github.event.repository.name }}
|
||||
PORTER_TAG: ${{ steps.vars.outputs.sha_short }}
|
||||
PORTER_TOKEN: ${{ secrets.PORTER_APP_15823_4828 }}
|
||||
39
.github/workflows/porter_app_worker_4879.yml
vendored
39
.github/workflows/porter_app_worker_4879.yml
vendored
|
|
@ -1,39 +0,0 @@
|
|||
"on":
|
||||
push:
|
||||
branches:
|
||||
- production
|
||||
|
||||
name: Deploy to prod
|
||||
jobs:
|
||||
porter-deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set Github tag
|
||||
id: vars
|
||||
run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Setup porter
|
||||
uses: porter-dev/setup-porter@v0.1.0
|
||||
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
|
||||
- name: Build Dist
|
||||
run: make full-dist
|
||||
|
||||
- name: Deploy stack
|
||||
timeout-minutes: 30
|
||||
run: exec porter apply -f ./porter/prod.yaml
|
||||
env:
|
||||
PORTER_APP_NAME: worker
|
||||
PORTER_CLUSTER: "4879"
|
||||
PORTER_DEPLOYMENT_TARGET_ID: b9a393d9-ea95-405b-afbf-991edc922729
|
||||
PORTER_HOST: https://dashboard.porter.run
|
||||
PORTER_PR_NUMBER: ${{ github.event.number }}
|
||||
PORTER_PROJECT: "15884"
|
||||
PORTER_REPO_NAME: ${{ github.event.repository.name }}
|
||||
PORTER_TAG: ${{ steps.vars.outputs.sha_short }}
|
||||
PORTER_TOKEN: ${{ secrets.PORTER_APP_15884_4879 }}
|
||||
404
.github/workflows/promote.yml
vendored
404
.github/workflows/promote.yml
vendored
|
|
@ -1,404 +0,0 @@
|
|||
name: Promote to Production
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
commit_sha:
|
||||
description: 'Specific commit SHA to cherry-pick (leave empty to promote everything in main)'
|
||||
type: string
|
||||
required: false
|
||||
default: ''
|
||||
worker_container_increment:
|
||||
description: 'Worker container version increment. Defaults to patch.'
|
||||
type: choice
|
||||
options:
|
||||
- major
|
||||
- minor
|
||||
- patch
|
||||
required: false
|
||||
default: 'patch'
|
||||
|
||||
jobs:
|
||||
promote:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.PROMOTE_PAT_TOKEN }}
|
||||
|
||||
- name: Configure Git
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Setup branches
|
||||
run: |
|
||||
# Ensure we have latest changes
|
||||
git fetch origin
|
||||
|
||||
# Create production branch if it doesn't exist
|
||||
if ! git show-ref --verify --quiet refs/remotes/origin/production; then
|
||||
echo "Creating production branch from main"
|
||||
git checkout -b production origin/main
|
||||
git push origin production
|
||||
else
|
||||
echo "Production branch already exists"
|
||||
git checkout production
|
||||
git pull origin production
|
||||
fi
|
||||
|
||||
# Ensure main is up to date
|
||||
git checkout main
|
||||
git pull origin main
|
||||
|
||||
- name: Cherry-pick specific commit
|
||||
if: ${{ inputs.commit_sha != '' }}
|
||||
run: |
|
||||
echo "Cherry-picking specific commit: ${{ inputs.commit_sha }}"
|
||||
|
||||
# Validate commit exists in main
|
||||
if ! git cat-file -e "${{ inputs.commit_sha }}^{commit}"; then
|
||||
echo "Error: Commit ${{ inputs.commit_sha }} does not exist"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if commit is in main branch
|
||||
if ! git merge-base --is-ancestor "${{ inputs.commit_sha }}" main; then
|
||||
echo "Error: Commit ${{ inputs.commit_sha }} is not in main branch"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Switch to production and cherry-pick
|
||||
git checkout production
|
||||
|
||||
# Check if commit is already in production
|
||||
if git merge-base --is-ancestor "${{ inputs.commit_sha }}" production; then
|
||||
echo "Commit ${{ inputs.commit_sha }} is already in production branch"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Cherry-pick the commit
|
||||
COMMIT_MSG=$(git log -1 --pretty=format:"%s" "${{ inputs.commit_sha }}")
|
||||
echo "Cherry-picking: $COMMIT_MSG"
|
||||
|
||||
if git cherry-pick "${{ inputs.commit_sha }}"; then
|
||||
echo "✅ Successfully cherry-picked commit"
|
||||
git push origin production
|
||||
echo "commit_promoted=true" >> $GITHUB_ENV
|
||||
else
|
||||
echo "❌ Cherry-pick failed - conflicts may need resolution"
|
||||
git cherry-pick --abort
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Recreate production from main
|
||||
if: ${{ inputs.commit_sha == '' }}
|
||||
run: |
|
||||
echo "Recreating production branch from main"
|
||||
|
||||
# Get current commit on main for summary
|
||||
MAIN_COMMIT=$(git rev-parse main)
|
||||
MAIN_COMMIT_MSG=$(git log -1 --pretty=format:"%s" main)
|
||||
echo "Main branch is at: $MAIN_COMMIT ($MAIN_COMMIT_MSG)"
|
||||
|
||||
# Check if production branch exists remotely
|
||||
if git show-ref --verify --quiet refs/remotes/origin/production; then
|
||||
PROD_COMMIT=$(git rev-parse origin/production)
|
||||
PROD_COMMIT_MSG=$(git log -1 --pretty=format:"%s" origin/production)
|
||||
echo "Current production is at: $PROD_COMMIT ($PROD_COMMIT_MSG)"
|
||||
|
||||
# Check if they're already the same
|
||||
if [ "$MAIN_COMMIT" = "$PROD_COMMIT" ]; then
|
||||
echo "Production is already up to date with main"
|
||||
echo "production_updated=false" >> $GITHUB_ENV
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Deleting existing production branch"
|
||||
git push origin --delete production
|
||||
|
||||
# Also delete local production branch if it exists
|
||||
if git show-ref --verify --quiet refs/heads/production; then
|
||||
echo "Deleting local production branch"
|
||||
git branch -D production
|
||||
fi
|
||||
else
|
||||
echo "Production branch doesn't exist, will create new one"
|
||||
fi
|
||||
|
||||
# Create new production branch from main
|
||||
echo "Creating new production branch from main"
|
||||
git checkout main
|
||||
git checkout -b production
|
||||
git push origin production
|
||||
|
||||
echo "✅ Successfully recreated production branch from main"
|
||||
echo "production_updated=true" >> $GITHUB_ENV
|
||||
echo "main_commit=$MAIN_COMMIT" >> $GITHUB_ENV
|
||||
|
||||
- name: Create summary
|
||||
if: always()
|
||||
run: |
|
||||
echo "## Promotion Summary" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
if [ "${{ inputs.commit_sha }}" != "" ]; then
|
||||
echo "### Single Commit Promotion" >> $GITHUB_STEP_SUMMARY
|
||||
echo "**Target Commit:** \`${{ inputs.commit_sha }}\`" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
if [ "${commit_promoted:-false}" = "true" ]; then
|
||||
echo "✅ **Status:** Successfully promoted to production" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "❌ **Status:** Promotion failed or commit already existed" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
else
|
||||
echo "### Bulk Promotion" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
if [ "${production_updated:-false}" = "true" ]; then
|
||||
echo "✅ **Status:** Successfully updated production branch" >> $GITHUB_STEP_SUMMARY
|
||||
else
|
||||
echo "ℹ️ **Status:** No new commits to promote or production already up to date" >> $GITHUB_STEP_SUMMARY
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Branches" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Source:** main" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Target:** production" >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
calculate-version:
|
||||
runs-on: ubuntu-latest
|
||||
needs: promote
|
||||
outputs:
|
||||
version: ${{ steps.calculate_version.outputs.version }}
|
||||
previous_version: ${{ steps.calculate_version.outputs.previous_version }}
|
||||
steps:
|
||||
- name: Checkout production branch
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: production
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Get latest release and calculate next version
|
||||
id: calculate_version
|
||||
run: |
|
||||
# Get the latest release version from GitHub
|
||||
LATEST_RELEASE=$(gh release view --json tagName --jq .tagName 2>/dev/null || echo "")
|
||||
|
||||
if [ -z "$LATEST_RELEASE" ]; then
|
||||
echo "No previous releases found, starting at 0.0.0"
|
||||
CURRENT_VERSION="0.0.0"
|
||||
else
|
||||
# Remove 'v' prefix if present
|
||||
CURRENT_VERSION=${LATEST_RELEASE#v}
|
||||
echo "Latest release: $LATEST_RELEASE (version: $CURRENT_VERSION)"
|
||||
fi
|
||||
|
||||
# Split version into components
|
||||
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
|
||||
|
||||
# Increment based on input
|
||||
case "${{ inputs.worker_container_increment }}" in
|
||||
major)
|
||||
MAJOR=$((MAJOR + 1))
|
||||
MINOR=0
|
||||
PATCH=0
|
||||
;;
|
||||
minor)
|
||||
MINOR=$((MINOR + 1))
|
||||
PATCH=0
|
||||
;;
|
||||
patch)
|
||||
PATCH=$((PATCH + 1))
|
||||
;;
|
||||
esac
|
||||
|
||||
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
|
||||
echo "New version: $NEW_VERSION"
|
||||
|
||||
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
|
||||
echo "previous_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
build-and-push:
|
||||
needs: calculate-version
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- arch: amd64
|
||||
os: ubuntu-latest
|
||||
- arch: arm64
|
||||
os: linux-arm64
|
||||
runs-on: ${{ matrix.os }}
|
||||
permissions:
|
||||
contents: write
|
||||
packages: write
|
||||
env:
|
||||
VERSION: ${{ needs.calculate-version.outputs.version }}
|
||||
REGISTRY: ghcr.io
|
||||
|
||||
steps:
|
||||
- name: Checkout production branch
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: production
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@v5
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Log in to GitHub Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build distributions
|
||||
run: |
|
||||
echo "Building full distribution for production release..."
|
||||
make full-dist
|
||||
|
||||
- name: Build and push Worker images
|
||||
run: |
|
||||
# Build both worker and worker-base images
|
||||
make docker VERSION=${{ env.VERSION }} ARCH=${{ matrix.arch }}
|
||||
make docker-base VERSION=${{ env.VERSION }} ARCH=${{ matrix.arch }}
|
||||
|
||||
# Push to GHCR only
|
||||
make publish-ghcr VERSION=${{ env.VERSION }} ARCH=${{ matrix.arch }}
|
||||
|
||||
push-manifest:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [calculate-version, build-and-push]
|
||||
permissions:
|
||||
contents: write
|
||||
packages: write
|
||||
env:
|
||||
VERSION: ${{ needs.calculate-version.outputs.version }}
|
||||
REGISTRY: ghcr.io
|
||||
steps:
|
||||
- name: Checkout production branch
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: production
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Log in to GitHub Container Registry
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Push manifest to GHCR
|
||||
working-directory: ./docker
|
||||
run: |
|
||||
make ghcr-manifest VERSION=${{ env.VERSION }}
|
||||
make ghcr-manifest INSTALL_TOOLKITS=false VERSION=${{ env.VERSION }}
|
||||
|
||||
create-release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [calculate-version, push-manifest]
|
||||
permissions:
|
||||
contents: write
|
||||
env:
|
||||
VERSION: ${{ needs.calculate-version.outputs.version }}
|
||||
PREVIOUS_VERSION: ${{ needs.calculate-version.outputs.previous_version }}
|
||||
steps:
|
||||
- name: Checkout production branch
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: production
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.PROMOTE_PAT_TOKEN }}
|
||||
|
||||
- name: Generate release notes
|
||||
id: generate_release_notes
|
||||
run: |
|
||||
echo "# Release ${{ env.VERSION }}" > release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
echo "## Container Images" >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
echo "### GitHub Container Registry (GHCR)" >> release_notes.md
|
||||
echo "\`\`\`bash" >> release_notes.md
|
||||
echo "docker pull ghcr.io/arcadeai/worker:${{ env.VERSION }}" >> release_notes.md
|
||||
echo "docker pull ghcr.io/arcadeai/worker-base:${{ env.VERSION }}" >> release_notes.md
|
||||
echo "\`\`\`" >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
echo "## What's Changed" >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
|
||||
if [ "${{ inputs.commit_sha }}" != "" ]; then
|
||||
# Case 1: Specific commit SHA to cherry-pick was provided
|
||||
echo "### Cherry-picked commit:" >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
git log -1 --pretty=format:"- **%h** %s (%an)" "${{ inputs.commit_sha }}" >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
echo "_This release contains a single cherry-picked commit from main._" >> release_notes.md
|
||||
else
|
||||
# Case 2: Bulk promotion (production == main)
|
||||
echo "### Commits in this release:" >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
|
||||
# Get the list of previous releases to find the last release
|
||||
PREV_RELEASE_DATE=$(gh release list --limit 5 --json publishedAt,tagName --jq '.[1].publishedAt // empty' 2>/dev/null || echo "")
|
||||
|
||||
if [ -z "$PREV_RELEASE_DATE" ]; then
|
||||
# First promotion ever
|
||||
echo "**Initial release** - Recent commits from main branch:" >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
git log -20 --pretty=format:"- **%h** %s (%an)" --reverse >> release_notes.md
|
||||
else
|
||||
# Show commits since the previous promotion
|
||||
echo "Changes since previous release ($(echo $PREV_RELEASE_DATE | cut -d'T' -f1)):" >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
git log --since="$PREV_RELEASE_DATE" --pretty=format:"- **%h** %s (%an)" --reverse >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
|
||||
# Fallback if no commits since last release (shouldn't happen, but just in case)
|
||||
if [ $(git log --since="$PREV_RELEASE_DATE" --oneline | wc -l) -eq 0 ]; then
|
||||
echo "_No commits found since previous release. Showing recent commits:_" >> release_notes.md
|
||||
echo "" >> release_notes.md
|
||||
git log -10 --pretty=format:"- **%h** %s (%an)" --reverse >> release_notes.md
|
||||
fi
|
||||
fi
|
||||
echo "" >> release_notes.md
|
||||
echo "_This release includes all changes from the main branch._" >> release_notes.md
|
||||
fi
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Create GitHub Release
|
||||
uses: actions/create-release@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: v${{ env.VERSION }}
|
||||
release_name: Release v${{ env.VERSION }}
|
||||
body_path: release_notes.md
|
||||
draft: false
|
||||
prerelease: false
|
||||
|
||||
- name: Update workflow summary
|
||||
run: |
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "## 🚀 Container Release" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Version Information" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Previous Version:** v${{ env.PREVIOUS_VERSION }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **New Version:** v${{ env.VERSION }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- **Increment Type:** ${{ inputs.worker_container_increment }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "" >> $GITHUB_STEP_SUMMARY
|
||||
echo "### Container Images Published to GHCR" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- ✅ ghcr.io/arcadeai/worker:${{ env.VERSION }}" >> $GITHUB_STEP_SUMMARY
|
||||
echo "- ✅ ghcr.io/arcadeai/worker-base:${{ env.VERSION }}" >> $GITHUB_STEP_SUMMARY
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
version: v2
|
||||
name: worker
|
||||
services:
|
||||
- name: worker
|
||||
type: web
|
||||
instances: 1
|
||||
cpuCores: 0.5
|
||||
ramMegabytes: 1024
|
||||
terminationGracePeriodSeconds: 30
|
||||
port: 8002
|
||||
autoscaling:
|
||||
enabled: true
|
||||
minInstances: 3
|
||||
maxInstances: 15
|
||||
gpu: false
|
||||
cpuThresholdPercent: 50
|
||||
memoryThresholdPercent: 50
|
||||
gpuThresholdPercent: 100
|
||||
vramThresholdPercent: 100
|
||||
healthCheck:
|
||||
enabled: true
|
||||
httpPath: /worker/health
|
||||
timeoutSeconds: 1
|
||||
initialDelaySeconds: 15
|
||||
private: true
|
||||
sleep: false
|
||||
serviceMeshEnabled: false
|
||||
build:
|
||||
context: ./
|
||||
method: docker
|
||||
dockerfile: ./docker/Dockerfile
|
||||
envGroups:
|
||||
- otel-configs
|
||||
- worker
|
||||
autoRollback:
|
||||
enabled: true
|
||||
deploymentStrategy: {}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
version: v2
|
||||
name: worker
|
||||
services:
|
||||
- name: worker
|
||||
type: web
|
||||
instances: 1
|
||||
cpuCores: 0.5
|
||||
ramMegabytes: 1024
|
||||
terminationGracePeriodSeconds: 30
|
||||
port: 8002
|
||||
autoscaling:
|
||||
enabled: true
|
||||
minInstances: 1
|
||||
maxInstances: 5
|
||||
gpu: false
|
||||
cpuThresholdPercent: 50
|
||||
memoryThresholdPercent: 50
|
||||
gpuThresholdPercent: 100
|
||||
vramThresholdPercent: 100
|
||||
healthCheck:
|
||||
enabled: true
|
||||
httpPath: /worker/health
|
||||
timeoutSeconds: 1
|
||||
initialDelaySeconds: 15
|
||||
private: true
|
||||
sleep: false
|
||||
serviceMeshEnabled: false
|
||||
build:
|
||||
context: ./
|
||||
method: docker
|
||||
dockerfile: ./docker/Dockerfile
|
||||
envGroups:
|
||||
- otel-configs
|
||||
- worker
|
||||
autoRollback:
|
||||
enabled: true
|
||||
deploymentStrategy: {}
|
||||
Loading…
Reference in a new issue