<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/89de3dbfe3662ec14ac28447d4c6ef76a89be1b9">https://github.com/macports/macports-ports/commit/89de3dbfe3662ec14ac28447d4c6ef76a89be1b9</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 89de3dbfe3662ec14ac28447d4c6ef76a89be1b9
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Thu Dec 10 20:57:16 2020 +0100

<span style='display:block; white-space:pre;color:#404040;'>    ci: Port GitHub Actions CI to Azure for 10.14
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Also, move azure pipeline definition to .github/. Moving allows us to
</span><span style='display:block; white-space:pre;color:#404040;'>    keep all CI definitions nicely tucked away in .github, and the setups
</span><span style='display:block; white-space:pre;color:#404040;'>    mirror each other as closely as possible for GitHub Actions and Azure
</span><span style='display:block; white-space:pre;color:#404040;'>    Pipelines.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Leave a compatibility symlink in place that can be removed later when
</span><span style='display:block; white-space:pre;color:#404040;'>    the Pipelines have been reconfigured to load their configuration from
</span><span style='display:block; white-space:pre;color:#404040;'>    the new path.
</span>---
 .github/azure-workflows/bootstrap.sh |  95 ++++++++++++++++++
 .github/azure-workflows/main.yml     | 183 +++++++++++++++++++++++++++++++++++
 azure-pipelines.yml                  |  42 +-------
 3 files changed, 279 insertions(+), 41 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/.github/azure-workflows/bootstrap.sh b/.github/azure-workflows/bootstrap.sh
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..53b2eed6adc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/.github/azure-workflows/bootstrap.sh
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,95 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#!/bin/bash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set -e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OS_MAJOR=$(uname -r | cut -f 1 -d .)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+OS_ARCH=$(uname -m)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+case "$OS_ARCH" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    i586|i686|x86_64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        OS_ARCH=i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[group]Disabling Spotlight"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Disable Spotlight indexing. We don't need it, and it might cost performance
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo mdutil -a -i off
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[group]Uninstalling Homebrew"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Move directories to /opt/off
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "Moving directories..."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo mkdir /opt/off
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/usr/bin/sudo /usr/bin/find /usr/local -mindepth 1 -maxdepth 1 -type d -print -exec /bin/mv {} /opt/off/ \;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Unlink files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "Removing files..."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+/usr/bin/sudo /usr/bin/find /usr/local -mindepth 1 -maxdepth 1 -type f -print -delete
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Rehash to forget about the deleted files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+hash -r
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[group]Installing MacPorts"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "Fetching..."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Download resources in background ASAP but use later; do this after cleaning
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# up Homebrew so that we don't end up using their curl!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+curl -fsSLO "https://dl.bintray.com/macports-ci-env/macports-base/MacPorts-${OS_MAJOR}.tar.bz2" &
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+curl_mpbase_pid=$!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+curl -fsSLO "https://dl.bintray.com/macports-ci-bot/getopt/getopt-v1.1.6.tar.bz2" &
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+curl_getopt_pid=$!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Download and install MacPorts built by https://github.com/macports/macports-base/tree/master/.github
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+wait $curl_mpbase_pid
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "Extracting..."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo tar -xpf "MacPorts-${OS_MAJOR}.tar.bz2" -C /
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+rm -f "MacPorts-${OS_MAJOR}.tar.bz2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[group]Configuring MacPorts"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Set PATH for portindex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+source /opt/local/share/macports/setupenv.bash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Set ports tree to $PWD/ports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo sed -i "" "s|rsync://rsync.macports.org/macports/release/tarballs/ports.tar|file://${PWD}/ports|; /^file:/s/default/nosync,default/" /opt/local/etc/macports/sources.conf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# CI is not interactive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "ui_interactive no" | sudo tee -a /opt/local/etc/macports/macports.conf >/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Only download from the CDN, not the mirrors
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "host_blacklist *.distfiles.macports.org *.packages.macports.org" | sudo tee -a /opt/local/etc/macports/macports.conf >/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Try downloading archives from the private server after trying the public server
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "archive_site_local https://packages.macports.org/:tbz2 https://packages-private.macports.org/:tbz2" | sudo tee -a /opt/local/etc/macports/macports.conf >/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Prefer to get archives from the public server instead of the private server
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# preferred_hosts has no effect on archive_site_local
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# See https://trac.macports.org/ticket/57720
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#echo "preferred_hosts packages.macports.org" | sudo tee -a /opt/local/etc/macports/macports.conf >/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[group]Generating PortIndex"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Update PortIndex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+curl -L "https://ftp.fau.de/macports/release/ports/PortIndex_darwin_${OS_MAJOR}_${OS_ARCH}/PortIndex" -o ports/PortIndex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+## Run portindex on recent commits if PR is newer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+git -C ports/ remote add macports https://github.com/macports/macports-ports.git
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+git -C ports/ fetch macports master
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+git -C ports/ checkout -qf macports/master~10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+git -C ports/ checkout -qf -
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+git -C ports/ checkout -qf "$(git -C ports/ merge-base macports/master HEAD)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+## Ignore portindex errors on common ancestor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(cd ports/ && portindex)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+git -C ports/ checkout -qf -
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(cd ports/ && portindex -e)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[group]Running postflight"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Create macports user
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "Postflight..."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo /opt/local/libexec/macports/postflight/postflight
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[group]Installing getopt"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Install getopt required by mpbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+wait $curl_getopt_pid
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "Extracting..."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+sudo tar -xpf "getopt-v1.1.6.tar.bz2" -C /
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+echo "##[endgroup]"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/.github/azure-workflows/main.yml b/.github/azure-workflows/main.yml
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..23fdb4749fa
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/.github/azure-workflows/main.yml
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,183 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+trigger:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  branches:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    include:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - "update/*"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+pr:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  - "*"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+resources:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  repositories:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    - repository: mpbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      type: github
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      endpoint: macports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      name: macports/mpbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+jobs:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  - job: build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    displayName: "macOS-10.14"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    timeoutInMinutes: 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pool:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      vmImage: 'macOS-10.14'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    steps:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - checkout: self
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        fetchDepth: 64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        path: s/ports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - checkout: mpbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        path: s/mpbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - bash: . ports/.github/azure-workflows/bootstrap.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: Bootstrap MacPorts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - bash: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          # Add getopt, mpbb and the MacPorts paths to $PATH for the subsequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          # steps.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          echo "##vso[task.prependpath]/opt/mports/bin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          echo "##vso[task.prependpath]${PWD}/mpbb"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          echo "##vso[task.prependpath]/opt/local/bin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          echo "##vso[task.prependpath]/opt/local/sbin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          IFS='/' read -r -a portlist <<<$( \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            git -C ports/ diff --name-only --diff-filter=AM macports/master...@ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              | grep -E '[^\._/][^/]*/[^/]+/(Portfile|files/)' \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              | cut -d/ -f2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              | sort -u \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              | tr '\n' '/')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          echo "${portlist[@]}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          echo "##vso[task.setvariable variable=portlist;isoutput=true]${portlist[@]}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: Determine list of changed ports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        name: portlist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - bash: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          subportlist=""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          for port in $portlist; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            echo "##[group]Listing subports for ${port}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            new_subports=$(mpbb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                --work-dir /tmp/mpbb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                list-subports \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                --archive-site= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                --archive-site-private= \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                "$port" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              | tr '\n' ' ')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            for subport in $new_subports; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              echo "$subport"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              subportlist="$subportlist $subport"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          echo "##vso[task.setvariable variable=subportlist;isoutput=true]${subportlist}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        env:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          portlist: $(portlist.portlist)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: Determine list of subports from portlist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        name: subportlist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - bash: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          fail=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          for subport in $subportlist; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            echo "##[group]${subport}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            path=$(port file "$subport")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            messagetype="warning"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if ! messages=$(port -q lint --nitpick "$subport" 2>&1); then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              messagetype="error"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              fail=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if [ -n "$messages" ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              echo "$messages"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              # See https://github.com/actions/toolkit/issues/193#issuecomment-605394935
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              encoded_messages="port lint --nitpick ${subport}:%0A"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              encoded_messages+="$(echo "${messages}" | sed -E 's/$/%0A/g' | tr -d '\n')"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              echo "##vso[task.logissue type=${messagetype};sourcepath=${path#${PWD}/ports/};linenumber=1;columnnumber=1]${encoded_messages}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          exit "$fail"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        env:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          subportlist: $(subportlist.subportlist)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: Run port lint for all changed subports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - bash: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          fail=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          for subport in $subportlist; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            workdir="/tmp/mpbb/$subport"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            mkdir -p "$workdir/logs"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            touch "$workdir/logs/dependencies-progress.txt"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            echo "##[group]Cleaning up between ports"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            sudo mpbb --work-dir "$workdir" cleanup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            echo "##[group]Installing dependencies for ${subport}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            sudo mpbb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              --work-dir "$workdir" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              install-dependencies \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              "$subport" >"$workdir/logs/install-dependencies.log" 2>&1 &
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            deps_pid=$!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            tail -f "$workdir/logs/dependencies-progress.txt" 2>/dev/null &
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            tail_pid=$!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set +e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            wait "$deps_pid"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            deps_exit=$?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set -e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            kill "$tail_pid" || true
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if [ "$deps_exit" -ne 0 ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              echo "##[error]Failed to install dependencies for ${subport}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            echo "##[group]Installing ${subport}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set +e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            sudo mpbb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              --work-dir "$workdir" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              install-port \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              --source \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              "$subport"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            install_exit=$?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set -e
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if [ "$install_exit" -ne 0 ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              echo "##[error]Failed to install ${subport}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              fail=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            echo "##[endgroup]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          exit "$fail"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: Build changed subports
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        env:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          subportlist: $(subportlist.subportlist)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - bash: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo find \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            /tmp/mpbb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -maxdepth 1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -mindepth 1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -type d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -print \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -exec chmod -R go+rX {} \;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        condition: always()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: Make logfiles readable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - bash: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          cd /tmp/mpbb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          zip \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            logs.zip \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            */logs/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        condition: always()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: Archive build logs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - publish: /tmp/mpbb/logs.zip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        artifact: logs.zip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        condition: always()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: Publish build logs archive
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/azure-pipelines.yml b/azure-pipelines.yml
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index f68e5783e73..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/azure-pipelines.yml
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,41 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-trigger: none
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-jobs:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- job: Build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  timeoutInMinutes: 0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  strategy:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    matrix:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      mac-10.15-xcode12:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        imageName: 'macOS-10.15'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        MP_XCODE_APP: '/Applications/Xcode_12.app'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      mac-10.15:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        imageName: 'macOS-10.15'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      mac-10.14:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        imageName: 'macOS-10.14'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  pool:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    vmImage: $(imageName)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  steps:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  - checkout: self
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    fetchDepth: 64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  - script: |
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      if [ -n "$MP_XCODE_APP" ]; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          echo "Selecting custom Xcode at $MP_XCODE_APP"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          sudo xcode-select --switch "$MP_XCODE_APP"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-          echo "Custom Xcode not specified"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      echo "Selected Xcode is $(xcode-select --print-path)"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    displayName: 'Set custom Xcode version'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  - script: ./_ci/bootstrap.sh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    displayName: 'Run bootstrap script'
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  - script: |
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      unset CC && source /opt/local/share/macports/setupenv.bash
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      export PATH="/opt/mports/bin:${PWD}/../mpbb:$PATH" && hash -r
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-      sudo env PASTE_URL="$PASTE_URL" ./runner
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    displayName: 'Test ports'
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/azure-pipelines.yml b/azure-pipelines.yml
</span>new file mode 120000
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..d0186d15109
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/azure-pipelines.yml
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+.github/azure-workflows/main.yml
</span>\ No newline at end of file
</pre><pre style='margin:0'>

</pre>