Skip to content

Commit

Permalink
revamping the build scripts (#1620)
Browse files Browse the repository at this point in the history
  • Loading branch information
joseph-flinn authored Oct 8, 2021
1 parent 45ab7e2 commit ee7b608
Show file tree
Hide file tree
Showing 26 changed files with 6,321 additions and 120 deletions.
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -215,3 +215,13 @@ bitwarden_license/src/Sso/wwwroot/css
**/CoverageOutput/
.idea/*
**/**.swp

src/Admin/Admin.zip
src/Api/Api.zip
src/Billing/Billing.zip
src/Events/Events.zip
src/EventsProcessor/EventsProcessor.zip
src/Identity/Identity.zip
src/Notifications/Notifications.zip
bitwarden_license/src/Portal/Portal.zip
bitwarden_license/src/Sso/Sso.zip
4 changes: 0 additions & 4 deletions bitwarden_license/src/Sso/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,3 @@ cd "$CUR_DIR"
gulp --gulpfile "$DIR/gulpfile.js" build
echo "Publish"
dotnet publish "$DIR/Sso.csproj" -c "Release" -o "$DIR/obj/build-output/publish"

echo -e "\nBuilding docker image"
docker --version
docker build -t bitwarden/sso "$DIR/."
48 changes: 48 additions & 0 deletions scripts/build
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/bash

##############################
# Builds a specified service
# Arguments:
# 1: Project to build
# 2: Project path
##############################
build() {
local project=$1
local project_dir=$2

echo "Building $project"
echo "Build Path: $project_dir"
echo "=================="

chmod u+x "$project_dir/build.sh"
"$project_dir/build.sh"
}

# Get Project
PROJECT=$1; shift

case "$PROJECT" in
"api" | "Api") build Api $PWD/src/Api ;;
"admin" | "Admin") build Admin $PWD/src/Admin ;;
"identity" | "Identity") build Identity $PWD/src/Identity ;;
"events" | "Events") build Events $PWD/src/Events ;;
"billing" | "Billing") build Billing $PWD/src/Billing ;;
"sso" | "Sso") build Sso $PWD/bitwarden_license/src/Sso ;;
"server" | "Server") build Server $PWD/util/Server ;;
"icons" | "Icons") build Icons $PWD/src/Icons ;;
"notifications" | "Notifications") build Notifications $PWD/src/Notifications ;;
"setup" | "Setup") build Setup $PWD/util/Setup ;;
"eventsprocessor" | "EventsProcessor") build EventsProcessor $PWD/src/EventsProcessor ;;
"")
build Api $PWD/src/Api
build Admin $PWD/src/Admin
build Identity $PWD/src/Identity
build Events $PWD/src/Events
build Billing $PWD/src/Billing
build Sso $PWD/bitwarden_license/src/Sso
build Server $PWD/util/Server
build Icons $PWD/src/Icons
build Notifications $PWD/src/Notifications
build EventsProcessor $PWD/src/EventsProcessor
;;
esac
93 changes: 93 additions & 0 deletions scripts/build-docker
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
#!/bin/bash

##############################
# Builds the docker image from a pre-built build directory
# Arguments:
# 1: Project Name
# 2: Project Directory
# 3: Docker Tag
# 4: Docker push
# Outputs:
# Output to STDOUT or STDERR.
# Returns:
# Returned values other than the default exit status of the last command run.
##############################
docker_build() {
local project_name=$1
local project_dir=$2
local docker_tag=$3
local docker_push=$4

local project_name_lower=$(echo "$project_name" | awk '{print tolower($0)}')

echo "Building docker image: bitwarden/$project_name_lower:$docker_tag"
echo "=============================="
if [ "$project_name_lower" == "k8s-proxy" ]; then
docker build -f $project_dir/Dockerfile-k8s -t bitwarden/$project_name_lower:$docker_tag $project_dir
fi

docker build -t bitwarden/$project_name_lower:$docker_tag $project_dir

if [ "$docker_push" == "1" ]; then
docker push bitwarden/$project_name_lower:$docker_tag $project_dir
fi
}

# Get Project
PROJECT=$1; shift

# Get Params
TAG="latest"
PUSH=0

while [ ! $# -eq 0 ]; do
case "$1" in
-t | --tag)
if [[ $2 ]]; then
TAG="$2"
shift
else
exp "--tag requires a value"
fi
;;
--push) PUSH=1 ;;
-h | --help ) usage && exit ;;
*) usage && exit ;;
esac
shift
done


case "$PROJECT" in
"api" | "Api") docker_build Api $PWD/src/Api $TAG $PUSH ;;
"admin" | "Admin") docker_build Admin $PWD/src/Admin $TAG $PUSH ;;
"identity" | "Identity") docker_build Identity $PWD/src/Identity $TAG $PUSH ;;
"events" | "Events") docker_build Events $PWD/src/Events $TAG $PUSH ;;
#"billing" | "Billing") docker_build Billing $PWD/src/Billing $TAG $PUSH ;;
"sso" | "Sso") docker_build Sso $PWD/bitwarden_license/src/Sso $TAG $PUSH ;;
"server" | "Server") docker_build Server $PWD/util/Server $TAG $PUSH ;;
"nginx" | "Nginx") docker_build Nginx $PWD/util/Nginx $TAG $PUSH ;;
"k8s-proxy" | "K8s-Proxy") docker_build K8s-Proxy $PWD/util/Nginx $TAG $PUSH ;;
"attachments" | "Attachments") docker_build Attachemnts $PWD/util/Attachments $TAG $PUSH ;;
"icons" | "Icons") docker_build Icons $PWD/src/Icons $TAG $PUSH ;;
"notifications" | "Notifications") docker_build Notifications $PWD/src/Notifications $TAG $PUSH ;;
"mssql" | "MsSql" | "Mssql") docker_build MsSql $PWD/util/MsSql $TAG $PUSH ;;
"seteup" | "Setup") docker_build Setup $PWD/util/Setup $TAG $PUSH
"eventsprocessor" | "EventsProcessor") docker_build EventsProcessor $PWD/src/EventsProcessor $TAG $PUSH
"")
docker_build Api $PWD/src/Api $TAG $PUSH
docker_build Admin $PWD/src/Admin $TAG $PUSH
docker_build Identity $PWD/src/Identity $TAG $PUSH
docker_build Events $PWD/src/Events $TAG $PUSH
#docker_build Billing $PWD/src/Billing $TAG $PUSH
docker_build Sso $PWD/bitwarden_license/src/Sso $TAG $PUSH
docker_build Server $PWD/util/Server $TAG $PUSH
docker_build Nginx $PWD/util/Nginx $TAG $PUSH
docker_build Attachemnts $PWD/util/Attachments $TAG $PUSH
docker_build Icons $PWD/src/Icons $TAG $PUSH
docker_build Notifications $PWD/src/Notifications $TAG $PUSH
docker_build MsSql $PWD/util/MsSql $TAG $PUSH$TAG $PUSH
docker_build Setup $PWD/util/Setup $TAG $PUSH
docker_build EventsProcessor $PWD/src/EventsProcessor $TAG $PUSH
;;
esac
42 changes: 42 additions & 0 deletions scripts/deploy-qa
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#!/bin/bash

##############################
# Builds the docker image from a pre-built build directory
# Arguments:
# 1: Project Name
# 2: Project Directory
# 3: Docker Tag
# 4: Docker push
##############################
deploy_app_service() {
local project_name=$1
local project_dir=$2

local project_name_lower=$(echo "$project_name" | awk '{print tolower($0)}')
local webapp_name=$(az keyvault secret show --vault-name bitwarden-qa-kv --name appservices-$project_name_lower-webapp-name --query value --output tsv)

cd $project_dir/obj/build-output/publish
zip -r $project_name.zip .
mv $project_name.zip ../../../
#az webapp deploy --resource-group bw-qa-env --name $webapp_name \
# --src-path $project_name.zip --verbose --type zip --restart true --subscription "Bitwarden Test"
}

PROJECT=$1; shift

case "$PROJECT" in
"api" | "Api") deploy_app_service Api $PWD/src/Api ;;
"admin" | "Admin") deploy_app_service Admin $PWD/src/Admin ;;
"identity" | "Identity") deploy_app_service Identity $PWD/src/Identity ;;
"events" | "Events") deploy_app_service Events $PWD/src/Events ;;
"billing" | "Billing") deploy_app_service Billing $PWD/src/Billing ;;
"sso" | "Sso") deploy_app_service Sso $PWD/bitwarden_license/src/Sso ;;
"")
deploy_app_service Api $PWD/src/Api
deploy_app_service Admin $PWD/src/Admin
deploy_app_service Identity $PWD/src/Identity
deploy_app_service Events $PWD/src/Events
deploy_app_service Billing $PWD/src/Billing
deploy_app_service Sso $PWD/bitwarden_license/src/Sso
;;
esac
6 changes: 3 additions & 3 deletions src/Admin/appsettings.QA.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@
"Console": {
"IncludeScopes": true,
"LogLevel": {
"Default": "Warning",
"System": "Warning",
"Microsoft": "Warning",
"Default": "Debug",
"System": "Debug",
"Microsoft": "Debug",
"Microsoft.Hosting.Lifetime": "Information"
}
}
Expand Down
4 changes: 0 additions & 4 deletions src/Admin/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,3 @@ cd "$CUR_DIR"
gulp --gulpfile "$DIR/gulpfile.js" build
echo "Publish"
dotnet publish "$DIR/Admin.csproj" -c "Release" -o "$DIR/obj/build-output/publish"

echo -e "\nBuilding docker image"
docker --version
docker build -t bitwarden/admin "$DIR/."
Loading

0 comments on commit ee7b608

Please sign in to comment.