Files
spring-boot/.github/workflows/distribute.yml
T
Phillip Webb 5807fa784d Protected against expected Artifactory JSON
Update curl command to Artifactory to ensure that the response JSON has
at least one expected field.

Prior to this commit, it was possible for Artifactory to return an HTTP
200 response with a failure JSON payload of the form:

  {"message":"RBv2 spring:spring-release-bundles-v2/<redacted> was
   not found","status_code":404}

We now pipe `curl` output to `jq` and use that to ensure at least one
expected field is present.

Closes gh-44813
2025-05-05 11:41:40 -07:00

44 lines
2.3 KiB
YAML

name: Distribute
on:
workflow_dispatch:
inputs:
build-number:
description: 'Number of the build to use to create the bundle'
required: true
type: string
create-bundle:
description: 'Whether to create the bundle. If unchecked, only the bundle distribution is executed'
required: true
type: boolean
default: true
version:
description: 'Version to bundle and distribute'
required: true
type: string
jobs:
distribute-spring-enterprise-release-bundle:
runs-on: ${{ vars.UBUNTU_SMALL || 'ubuntu-latest' }}
steps:
- name: Create Bundle
if: ${{ vars.COMMERCIAL && inputs.create-bundle }}
shell: bash
run: |
curl -s -u "${{ secrets.COMMERCIAL_ARTIFACTORY_USERNAME }}:${{ secrets.COMMERCIAL_ARTIFACTORY_PASSWORD }}" \
-X POST -H "X-JFrog-Signing-Key-Name: packagesKey" -H "Content-Type: application/json" \
"https://usw1.packages.broadcom.com/lifecycle/api/v2/release_bundle?project=spring" \
-d '{"release_bundle_name": "TNZ-spring-boot-commercial", "release_bundle_version": "${{ inputs.version }}", "skip_docker_manifest_resolution": true, "source_type": "builds", "source": {"builds": [ {"build_repository": "spring-build-info", "build_name": "spring-boot-commercial-${{ inputs.version }}", "build_number": "${{ inputs.build-number }}", "include_dependencies": false}]}}' | \
jq -e 'if has("repository_key") then . else halt_error end'
- name: Sleep
if: ${{ vars.COMMERCIAL && inputs.create-bundle }}
shell: bash
run: sleep 30
- name: Distribute Bundle
if: ${{ vars.COMMERCIAL }}
shell: bash
run: |
curl -s -u "${{ secrets.COMMERCIAL_ARTIFACTORY_USERNAME }}:${{ secrets.COMMERCIAL_ARTIFACTORY_PASSWORD }}" \
-X POST -H "Content-Type: application/json" \
"https://usw1.packages.broadcom.com/lifecycle/api/v2/distribution/distribute/TNZ-spring-boot-commercial/${{ inputs.version }}?project=spring" \
-d '{"auto_create_missing_repositories": "false", "distribution_rules": [{"site_name": "JP-SaaS"}], "modifications": {"mappings": [{"input": "spring-enterprise-maven-prod-local/(.*)", "output": "spring-enterprise/$1"}]}}' | \
jq -e 'if has("id") then . else halt_error end'