Skip to content
This repository was archived by the owner on Apr 20, 2023. It is now read-only.

Commit 12350c4

Browse files
author
jbeisner
committed
Fixing the line endings.
1 parent 1ea48da commit 12350c4

File tree

1 file changed

+1
-183
lines changed

1 file changed

+1
-183
lines changed

run-build.sh

Lines changed: 1 addition & 183 deletions
Original file line numberDiff line numberDiff line change
@@ -1,183 +1 @@
1-
#!/usr/bin/env bash
2-
#
3-
# Copyright (c) .NET Foundation and contributors. All rights reserved.
4-
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
5-
#
6-
7-
set -e
8-
9-
machine_has() {
10-
hash "$1" > /dev/null 2>&1
11-
return $?
12-
}
13-
14-
check_min_reqs() {
15-
if ! machine_has "curl"; then
16-
echo "run-build: Error: curl is required to download dotnet. Install curl to proceed." >&2
17-
return 1
18-
fi
19-
return 0
20-
}
21-
22-
# args:
23-
# remote_path - $1
24-
# [out_path] - $2 - stdout if not provided
25-
download() {
26-
eval $invocation
27-
28-
local remote_path=$1
29-
local out_path=${2:-}
30-
31-
local failed=false
32-
if [ -z "$out_path" ]; then
33-
curl --retry 10 -sSL --create-dirs $remote_path || failed=true
34-
else
35-
curl --retry 10 -sSL --create-dirs -o $out_path $remote_path || failed=true
36-
fi
37-
38-
if [ "$failed" = true ]; then
39-
echo "run-build: Error: Download failed" >&2
40-
return 1
41-
fi
42-
}
43-
44-
SOURCE="${BASH_SOURCE[0]}"
45-
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
46-
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
47-
SOURCE="$(readlink "$SOURCE")"
48-
[[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
49-
done
50-
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
51-
REPOROOT="$DIR"
52-
53-
ARCHITECTURE="x64"
54-
STAGE0_SOURCE_DIR=
55-
56-
source "$REPOROOT/scripts/common/_prettyprint.sh"
57-
58-
BUILD=1
59-
60-
LINUX_PORTABLE_INSTALL_ARGS=
61-
CUSTOM_BUILD_ARGS=
62-
63-
# Set nuget package cache under the repo
64-
[ -z $NUGET_PACKAGES ] && export NUGET_PACKAGES="$REPOROOT/.nuget/packages"
65-
66-
args=( )
67-
68-
while [[ $# > 0 ]]; do
69-
lowerI="$(echo $1 | awk '{print tolower($0)}')"
70-
case $lowerI in
71-
-c|--configuration)
72-
export CONFIGURATION=$2
73-
shift
74-
;;
75-
--nopackage)
76-
export DOTNET_BUILD_SKIP_PACKAGING=1
77-
;;
78-
--skip-prereqs)
79-
# Allow CI to disable prereqs check since the CI has the pre-reqs but not ldconfig it seems
80-
export DOTNET_INSTALL_SKIP_PREREQS=1
81-
;;
82-
--nobuild)
83-
BUILD=0
84-
;;
85-
-a|--architecture)
86-
ARCHITECTURE=$2
87-
shift
88-
;;
89-
--runtime-id)
90-
CUSTOM_BUILD_ARGS="/p:Rid=\"$2\""
91-
shift
92-
;;
93-
# This is here just to eat away this parameter because CI still passes this in.
94-
--targets)
95-
shift
96-
;;
97-
--linux-portable)
98-
LINUX_PORTABLE_INSTALL_ARGS="--runtime-id linux-x64"
99-
CUSTOM_BUILD_ARGS="/p:Rid=\"linux-x64\" /p:OSName=\"linux\" /p:IslinuxPortable=\"true\""
100-
;;
101-
--stage0)
102-
STAGE0_SOURCE_DIR=$2
103-
shift
104-
;;
105-
--help)
106-
echo "Usage: $0 [--configuration <CONFIGURATION>] [--architecture <ARCHITECTURE>] [--skip-prereqs] [--nopackage] [--nobuild ] [--help]"
107-
echo ""
108-
echo "Options:"
109-
echo " --configuration <CONFIGURATION> Build the specified Configuration (Debug or Release, default: Debug)"
110-
echo " --architecture <ARCHITECTURE> Build the specified architecture (x64 or x86 (supported only on Windows), default: x64)"
111-
echo " --skip-prereqs Skip checks for pre-reqs in dotnet_install"
112-
echo " --nopackage Skip packaging targets"
113-
echo " --nobuild Skip building, showing the command that would be used to build"
114-
echo " --help Display this help message"
115-
exit 0
116-
;;
117-
*)
118-
args=$@
119-
break
120-
;;
121-
esac
122-
123-
shift
124-
done
125-
126-
# The first 'pass' call to "dotnet msbuild build.proj" has a hard-coded "WriteDynamicPropsToStaticPropsFiles" target
127-
# therefore, this call should not have other targets defined. Remove all targets passed in as 'extra parameters'.
128-
argsnotargets=( )
129-
for element in ${args[@]} do
130-
if [[ $element != /t:* ]]; then
131-
argsnotargets+=($element)
132-
fi
133-
done
134-
135-
# Create an install directory for the stage 0 CLI
136-
[ -z "$DOTNET_INSTALL_DIR" ] && export DOTNET_INSTALL_DIR=$REPOROOT/.dotnet_stage0/$ARCHITECTURE
137-
[ -d "$DOTNET_INSTALL_DIR" ] || mkdir -p $DOTNET_INSTALL_DIR
138-
139-
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
140-
141-
# Enable verbose VS Test Console logging
142-
export VSTEST_BUILD_TRACE=1
143-
export VSTEST_TRACE_BUILD=1
144-
145-
146-
# Don't resolve shared frameworks from user or global locations
147-
export DOTNET_MULTILEVEL_LOOKUP=0
148-
149-
# Install a stage 0
150-
if [ "$STAGE0_SOURCE_DIR" == "" ]; then
151-
(set -x ; "$REPOROOT/scripts/obtain/dotnet-install.sh" --version "2.2.0-preview1-007799" --install-dir "$DOTNET_INSTALL_DIR" --architecture "$ARCHITECTURE" $LINUX_PORTABLE_INSTALL_ARGS)
152-
else
153-
echo "Copying bootstrap cli from $STAGE0_SOURCE_DIR"
154-
cp -r $STAGE0_SOURCE_DIR/* "$DOTNET_INSTALL_DIR"
155-
fi
156-
157-
EXIT_CODE=$?
158-
if [ $EXIT_CODE != 0 ]; then
159-
echo "run-build: Error: installing stage0 with exit code $EXIT_CODE." >&2
160-
exit $EXIT_CODE
161-
fi
162-
163-
# Put stage 0 on the PATH (for this shell only)
164-
PATH="$DOTNET_INSTALL_DIR:$PATH"
165-
166-
# Increases the file descriptors limit for this bash. It prevents an issue we were hitting during restore
167-
FILE_DESCRIPTOR_LIMIT=$( ulimit -n )
168-
if [ $FILE_DESCRIPTOR_LIMIT -lt 1024 ]
169-
then
170-
echo "Increasing file description limit to 1024"
171-
ulimit -n 1024
172-
fi
173-
174-
# Disable first run since we want to control all package sources
175-
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
176-
177-
if [ $BUILD -eq 1 ]; then
178-
dotnet msbuild build.proj /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS /p:GeneratePropsFile=true /t:WriteDynamicPropsToStaticPropsFiles $argsnotargets
179-
dotnet msbuild build.proj /m /v:normal /fl /flp:v=diag /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS $args
180-
else
181-
echo "Not building due to --nobuild"
182-
echo "Command that would be run is: 'dotnet msbuild build.proj /m /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS $args'"
183-
fi
1+
#!/usr/bin/env bash## Copyright (c) .NET Foundation and contributors. All rights reserved.# Licensed under the MIT license. See LICENSE file in the project root for full license information.#set -emachine_has() { hash "$1" > /dev/null 2>&1 return $?}check_min_reqs() { if ! machine_has "curl"; then echo "run-build: Error: curl is required to download dotnet. Install curl to proceed." >&2 return 1 fi return 0}# args:# remote_path - $1# [out_path] - $2 - stdout if not provideddownload() { eval $invocation local remote_path=$1 local out_path=${2:-} local failed=false if [ -z "$out_path" ]; then curl --retry 10 -sSL --create-dirs $remote_path || failed=true else curl --retry 10 -sSL --create-dirs -o $out_path $remote_path || failed=true fi if [ "$failed" = true ]; then echo "run-build: Error: Download failed" >&2 return 1 fi}SOURCE="${BASH_SOURCE[0]}"while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" SOURCE="$(readlink "$SOURCE")" [[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was locateddoneDIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"REPOROOT="$DIR"ARCHITECTURE="x64"STAGE0_SOURCE_DIR=source "$REPOROOT/scripts/common/_prettyprint.sh"BUILD=1LINUX_PORTABLE_INSTALL_ARGS=CUSTOM_BUILD_ARGS=# Set nuget package cache under the repo[ -z $NUGET_PACKAGES ] && export NUGET_PACKAGES="$REPOROOT/.nuget/packages"args=( )while [[ $# > 0 ]]; do lowerI="$(echo $1 | awk '{print tolower($0)}')" case $lowerI in -c|--configuration) export CONFIGURATION=$2 shift ;; --nopackage) export DOTNET_BUILD_SKIP_PACKAGING=1 ;; --skip-prereqs) # Allow CI to disable prereqs check since the CI has the pre-reqs but not ldconfig it seems export DOTNET_INSTALL_SKIP_PREREQS=1 ;; --nobuild) BUILD=0 ;; -a|--architecture) ARCHITECTURE=$2 shift ;; --runtime-id) CUSTOM_BUILD_ARGS="/p:Rid=\"$2\"" shift ;; # This is here just to eat away this parameter because CI still passes this in. --targets) shift ;; --linux-portable) LINUX_PORTABLE_INSTALL_ARGS="--runtime-id linux-x64" CUSTOM_BUILD_ARGS="/p:Rid=\"linux-x64\" /p:OSName=\"linux\" /p:IslinuxPortable=\"true\"" ;; --stage0) STAGE0_SOURCE_DIR=$2 shift ;; --help) echo "Usage: $0 [--configuration <CONFIGURATION>] [--architecture <ARCHITECTURE>] [--skip-prereqs] [--nopackage] [--nobuild ] [--help]" echo "" echo "Options:" echo " --configuration <CONFIGURATION> Build the specified Configuration (Debug or Release, default: Debug)" echo " --architecture <ARCHITECTURE> Build the specified architecture (x64 or x86 (supported only on Windows), default: x64)" echo " --skip-prereqs Skip checks for pre-reqs in dotnet_install" echo " --nopackage Skip packaging targets" echo " --nobuild Skip building, showing the command that would be used to build" echo " --help Display this help message" exit 0 ;; *) args=$@ break ;; esac shiftdone# The first 'pass' call to "dotnet msbuild build.proj" has a hard-coded "WriteDynamicPropsToStaticPropsFiles" target# therefore, this call should not have other targets defined. Remove all targets passed in as 'extra parameters'.argsnotargets=( )for element in ${args[@]} do if [[ $element != /t:* ]]; then argsnotargets+=($element) fidone# Create an install directory for the stage 0 CLI[ -z "$DOTNET_INSTALL_DIR" ] && export DOTNET_INSTALL_DIR=$REPOROOT/.dotnet_stage0/$ARCHITECTURE[ -d "$DOTNET_INSTALL_DIR" ] || mkdir -p $DOTNET_INSTALL_DIRexport DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1# Enable verbose VS Test Console loggingexport VSTEST_BUILD_TRACE=1export VSTEST_TRACE_BUILD=1# Don't resolve shared frameworks from user or global locationsexport DOTNET_MULTILEVEL_LOOKUP=0# Install a stage 0if [ "$STAGE0_SOURCE_DIR" == "" ]; then (set -x ; "$REPOROOT/scripts/obtain/dotnet-install.sh" --version "2.2.0-preview1-007799" --install-dir "$DOTNET_INSTALL_DIR" --architecture "$ARCHITECTURE" $LINUX_PORTABLE_INSTALL_ARGS)else echo "Copying bootstrap cli from $STAGE0_SOURCE_DIR" cp -r $STAGE0_SOURCE_DIR/* "$DOTNET_INSTALL_DIR"fiEXIT_CODE=$?if [ $EXIT_CODE != 0 ]; then echo "run-build: Error: installing stage0 with exit code $EXIT_CODE." >&2 exit $EXIT_CODEfi# Put stage 0 on the PATH (for this shell only)PATH="$DOTNET_INSTALL_DIR:$PATH"# Increases the file descriptors limit for this bash. It prevents an issue we were hitting during restoreFILE_DESCRIPTOR_LIMIT=$( ulimit -n )if [ $FILE_DESCRIPTOR_LIMIT -lt 1024 ]then echo "Increasing file description limit to 1024" ulimit -n 1024fi# Disable first run since we want to control all package sourcesexport DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1if [ $BUILD -eq 1 ]; then dotnet msbuild build.proj /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS /p:GeneratePropsFile=true /t:WriteDynamicPropsToStaticPropsFiles $argsnotargets dotnet msbuild build.proj /m /v:normal /fl /flp:v=diag /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS $argselse echo "Not building due to --nobuild" echo "Command that would be run is: 'dotnet msbuild build.proj /m /p:Architecture=$ARCHITECTURE $CUSTOM_BUILD_ARGS $args'"fi

0 commit comments

Comments
 (0)