From 93cbe504544845087034b25404799a99b291fe8d Mon Sep 17 00:00:00 2001 From: Recolic K <bensl@microsoft.com> Date: Wed, 26 May 2021 16:08:36 +0800 Subject: [PATCH] . --- Azure-Deployment-Builder/guest-build.sh | 3 +- ControlPlane/guest-build.sh | 29 +++++++++++++ ControlPlane/host-daemon.fish | 57 +++++++++++++++++++++++++ 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100755 ControlPlane/guest-build.sh create mode 100644 ControlPlane/host-daemon.fish diff --git a/Azure-Deployment-Builder/guest-build.sh b/Azure-Deployment-Builder/guest-build.sh index d7c758e..c7169d9 100755 --- a/Azure-Deployment-Builder/guest-build.sh +++ b/Azure-Deployment-Builder/guest-build.sh @@ -30,7 +30,8 @@ echo START pack rm -f ~/build-output/net472/*.pdb && cp Workflows/*.xaml ~/build-output/net472/ && -zip build-output.zip ~/build-output/net472/** +zip build-output.zip ~/build-output/net472/** || +exit $? echo DONE diff --git a/ControlPlane/guest-build.sh b/ControlPlane/guest-build.sh new file mode 100755 index 0000000..fdd8f46 --- /dev/null +++ b/ControlPlane/guest-build.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# This script runs on guest, build the proj + +nuget_uname="$1" +nuget_pswd="$2" +cd /buildroot/repo || exit $? + +####################################### +echo START sync + +dotnet nuget add source "https://msazure.pkgs.visualstudio.com/_packaging/Official/nuget/v3/index.json" --name MSAZ --username "$nuget_uname" --password "$nuget_pswd" --store-password-in-clear-text && +dotnet nuget add source "https://o365exchange.pkgs.visualstudio.com/_packaging/Common/nuget/v3/index.json" --name O365Core --username "$nuget_uname" --password "$nuget_pswd" --store-password-in-clear-text && +dotnet nuget add source "https://skype.pkgs.visualstudio.com/DefaultCollection/_packaging/csc/nuget/v3/index.json" --name Skype --username "$nuget_uname" --password "$nuget_pswd" --store-password-in-clear-text && +dotnet nuget add source "https://o365exchange.pkgs.visualstudio.com/959adb23-f323-4d52-8203-ff34e5cbeefa/_packaging/M365FleetAGC/nuget/v3/index.json" --name M365FleetAGC --username "$nuget_uname" --password "$nuget_pswd" --store-password-in-clear-text && +openxt sync --local-repo-dir ~/nuget-local-repo --project-dir sources/dev/FleetAGC/src || +exit $? + +####################################### +echo START build AzureToolkit + +mv sources/dev/FleetAGC/src/AzureToolKit ~ && cd ~/AzureToolKit && +source <(openxt env --local-repo-dir ~/nuget-local-repo --project-dir . --bin-dir ~/build-output --shell bash) && +csproj-to-5 *.csproj && +dotnet pack || +exit $? + +echo DONE + + diff --git a/ControlPlane/host-daemon.fish b/ControlPlane/host-daemon.fish new file mode 100644 index 0000000..73a9a04 --- /dev/null +++ b/ControlPlane/host-daemon.fish @@ -0,0 +1,57 @@ +#!/usr/bin/fish +# daemon on host + +# Should have permission to clone repo, read repo, download nuget package. +# Personal-Access-Token, allow all read-only access. +set devops_uname bensl +set devops_pswd (cat /home/recolic/scripts/ms-passwords/devops-password) +# Using GNU grep, allow basic regex. (I assume nobody place SPACE and origin/ in his branch name. ) +set triggers master 'u/recolic/.*' + +set tmpf /tmp/ms-externci-controlplane +test $devops_pswd = "" ; and echo "Please set devops_password" ; and exit 1 + +function dobuild + set build_tag $args[1] + sudo docker run -ti --rm -v (pwd)/..:/buildroot recolic/openxt bash /buildroot/guest-build.sh $devops_uname $devops_pswd +end + +test -d repo + or git clone https://$devops_uname:$devops_pswd@o365exchange.visualstudio.com/DefaultCollection/O365%20Core/_git/ControlPlane repo +cd repo + +dobuild +while true + # No error-crash in the loop. + git fetch 2>&1 > $tmpf + git reset --hard "@{upstream}" + + # dirty string processing + for niddle in triggers + # Each line in the hit, means a updated branch need to be built. + for line in (cat $tmpf | grep -E "origin/$niddle"'( |$)') + set hit_brname (echo $line | sed 's/^.* origin\///g' | sed 's/ .*$//g') + git checkout $hit_brname ; or continue + set curr_hash (echo $line | sed 's/^[^\.]*\.\.\.*//g' | sed 's/ .*$//g') + if test $curr_hash = "" + # new branch + set curr_hash (git rev-parse --short HEAD) + end + + dobuild $hit_brname:$curr_hash + end + end + + sleep 10m +end + + + + + + + +# * [new branch] u/liuyong/cmdletToCreateAccountAdmin -> origin/u/liuyong/cmdletToCreateAccountAdmin +# + 35d9e4838c6...5322513e658 u/qingche/AddModels0525 -> origin/u/qingche/AddModels0525 (forced update) +# f9b0bf716bb..d2283f560b7 u/ricardoo/SyncDeploymentParterClusterAndAzureDbWorkflowBulkInsert -> origin/u/ricardoo/SyncDeploymentParterClusterAndAzureDbWorkflowBulkInsert + -- GitLab