#!/bin/bash
# Copyright 2022 The gRPC Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -ex

# avoid slow finalization after the script has exited.
source $(dirname $0)/../../../../tools/internal_ci/helper_scripts/move_src_tree_and_respawn_itself_rc

# change to grpc repo root
cd $(dirname $0)/../../../..

source tools/internal_ci/helper_scripts/prepare_build_linux_rc

# Move artifacts generated by the previous step in the build chain to a place
# where they can be accessed from within a docker container that builds
# the packages
mv ${KOKORO_GFILE_DIR}/github/grpc/artifacts input_artifacts || true
chmod +x input_artifacts/protoc*/* || true
ls -R input_artifacts || true

# Collect the packages from the "build artifacts" phase and simply copy
# the files to the artifact/ directory. For some languages,
# artifacts from the "build artifacts" phase are actually combined
# into a single multi-platform package file:
# - C#'s Grpc.Tools package requires protoc plugins built on multiple platforms
# - Ruby's grpc.tools gem also requires protoc plugins build on multiple platforms
tools/run_tests/task_runner.py -f package linux -e "exclude_in_collect_all_packages" -j 6 || FAILED="true"

# Fix for https://github.com/grpc/grpc/issues/32179 by avoiding name clash
# with csharp_nugets_windows_dotnetcli.zip files from previous steps.
cp artifacts/csharp_nugets_windows_dotnetcli.zip artifacts/csharp_nugets_windows_dotnetcli_multiplatform.zip || true

tools/internal_ci/helper_scripts/store_artifacts_from_moved_src_tree.sh

if [ "$FAILED" != "" ]
then
  exit 1
fi

