github.com/bshelton229/agent@v3.5.4+incompatible/.buildkite/steps/upload-release-steps.sh (about)

     1  #!/bin/bash
     2  set -euo pipefail
     3  
     4  # Generates and uploads pipeline steps for the edge, beta and stable release
     5  
     6  trigger_step() {
     7    local name="$1"
     8    local trigger_pipeline="$2"
     9    local branch="$BUILDKITE_BRANCH"
    10    local message_suffix=""
    11  
    12    if [[ "${DRY_RUN:-false}" == "true" ]] ; then
    13      message_suffix=" (dry-run)"
    14    fi
    15  
    16    cat <<YAML
    17    - name: ":rocket: ${name}${message_suffix}"
    18      trigger: "${trigger_pipeline}"
    19      async: false
    20      branches: "${branch}"
    21      build:
    22        message: "Release for ${agent_version}, build ${build_version}${message_suffix}"
    23        commit: "${BUILDKITE_COMMIT}"
    24        branch: "${BUILDKITE_BRANCH}"
    25        meta_data:
    26          agent-artifacts-build: "${BUILDKITE_BUILD_ID}"
    27          agent-version: "${agent_version}"
    28          agent-version-build: "${build_version}"
    29          agent-version-full:  "${full_agent_version}"
    30          agent-docker-image-alpine: "${agent_docker_image_alpine}"
    31          agent-docker-image-ubuntu: "${agent_docker_image_ubuntu}"
    32          agent-is-prerelease: "${agent_is_prerelease}"
    33        env:
    34          DRY_RUN: "${DRY_RUN:-false}"
    35  YAML
    36  }
    37  
    38  block_step() {
    39    local label="$1"
    40    cat <<YAML
    41    - wait
    42    - block: "${label}"
    43  YAML
    44  }
    45  
    46  output_steps_yaml() {
    47    echo "steps:"
    48  
    49    trigger_step \
    50      "edge ${agent_version}.${build_version}" \
    51      "agent-release-edge"
    52  
    53    block_step "beta?"
    54  
    55    trigger_step \
    56      "beta ${agent_version}" \
    57      "agent-release-beta"
    58  
    59    if [[ ! "$agent_version" =~ (beta|rc) ]] ; then
    60      block_step "stable?"
    61  
    62      trigger_step \
    63        "stable ${agent_version}" \
    64        "agent-release-stable"
    65    fi
    66  }
    67  
    68  if [[ "${BUILDKITE_BRANCH}" != "master" && "${DRY_RUN}" != "true" && "${BUILDKITE_BRANCH}" != *-*-stable ]] ; then
    69    echo "No release steps to be uploaded"
    70    exit 0
    71  fi
    72  
    73  agent_version=$(buildkite-agent meta-data get "agent-version")
    74  build_version=$(buildkite-agent meta-data get "agent-version-build")
    75  full_agent_version=$(buildkite-agent meta-data get "agent-version-full")
    76  agent_docker_image_alpine=$(buildkite-agent meta-data get "agent-docker-image-alpine")
    77  agent_docker_image_ubuntu=$(buildkite-agent meta-data get "agent-docker-image-ubuntu")
    78  agent_is_prerelease=$(buildkite-agent meta-data get "agent-is-prerelease")
    79  
    80  # If there is already a release (which means a tag), we want to avoid trying to create
    81  # another one, as this will fail and cause partial broken releases
    82  if [[ "${DRY_RUN:-false}" == "false" ]] && git ls-remote --tags origin | grep "refs/tags/v${agent_version}" ; then
    83    echo "Tag refs/tags/v${agent_version} already exists"
    84    exit 0
    85  fi
    86  
    87  output_steps_yaml | buildkite-agent pipeline upload