name: Promote rc to final on: workflow_call: inputs: package: description: Package to be promoted required: true type: string release_tag: description: Tag matching the actual release candidate with the format pezkuwi-stableYYMM(-X)-rcX that will be changed to final in form of pezkuwi-stableYYMM(-X) required: true type: string target: description: Target triple for which the artifacts are being uploaded (e.g aarch64-apple-darwin) required: true type: string secrets: AWS_DEFAULT_REGION: required: true AWS_RELEASE_ACCESS_KEY_ID: required: true AWS_RELEASE_SECRET_ACCESS_KEY: required: true jobs: promote-release-artifacts: environment: release runs-on: ubuntu-latest env: AWS_ACCESS_KEY_ID: ${{ secrets.AWS_RELEASE_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_RELEASE_SECRET_ACCESS_KEY }} AWS_REGION: ${{ secrets.AWS_DEFAULT_REGION }} RELEASE_TAG: ${{ inputs.release_tag }} PACKAGE: ${{ inputs.package }} TARGET: ${{ inputs.target }} steps: - name: Checkout sources uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 - name: Prepare final tag id: prepare_final_tag shell: bash run: | tag="$(echo $RELEASE_TAG | sed 's/-rc[0-9]*$//')" echo $tag echo "FINAL_TAG=${tag}" >> $GITHUB_OUTPUT - name: Fetch binaries from s3 based on version run: | . ./.github/scripts/common/lib.sh VERSION="$RELEASE_TAG" if [[ "$PACKAGE" == 'pezkuwi' ]]; then packages=(pezkuwi pezkuwi-prepare-worker pezkuwi-execute-worker) for package in "${packages[@]}"; do OUTPUT_DIR="./release-artifacts/$TARGET/${package}" fetch_release_artifacts_from_s3 "$package" "$TARGET" done NODE_VERSION="$(get_pezkuwi_node_version_from_code)" fetch_debian_package_from_s3 pezkuwi fetch_rpm_package_from_s3 pezkuwi else fetch_release_artifacts_from_s3 "$PACKAGE" "$TARGET" fi - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@00943011d9042930efac3dcd3a170e4273319bc8 # v5.1.0 with: aws-access-key-id: ${{ env.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ env.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ env.AWS_REGION }} - name: Upload ${{ inputs.package }} ${{ inputs.target }} artifacts to s3 run: | . ./.github/scripts/release/release_lib.sh if [[ "$PACKAGE" == 'pezkuwi' ]]; then packages=(pezkuwi pezkuwi-prepare-worker pezkuwi-execute-worker) for package in "${packages[@]}"; do upload_s3_release $package ${{ steps.prepare_final_tag.outputs.final_tag }} ${{ inputs.target }} done else upload_s3_release "$PACKAGE" ${{ steps.prepare_final_tag.outputs.final_tag }} "$TARGET" fi