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

</pre>
<p><a href="https://github.com/macports/macports-base/commit/552f6db84e01898da5dfe5f83bb08844764860ff">https://github.com/macports/macports-base/commit/552f6db84e01898da5dfe5f83bb08844764860ff</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 552f6db84e01898da5dfe5f83bb08844764860ff
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Wed Dec 9 21:41:22 2020 +0100

<span style='display:block; white-space:pre;color:#404040;'>    ci: Add GitHub Actions, Azure Pipelines CI
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Drop the Travis builds and move to GitHub Actions for 10.15 and 11.
</span><span style='display:block; white-space:pre;color:#404040;'>    GitHub Actions does not provide 10.14 images, so add Azure Pipelines for
</span><span style='display:block; white-space:pre;color:#404040;'>    10.14 as long as they still provide it.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    These new CI steps perform configuration, build, installation and test
</span><span style='display:block; white-space:pre;color:#404040;'>    in separate steps, which gives us (a) better reporting, and (b) a better
</span><span style='display:block; white-space:pre;color:#404040;'>    user experience.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Additionally, this obsoletes the current re-deployment procedure of the
</span><span style='display:block; white-space:pre;color:#404040;'>    macports-ports CI environment that involved merging newly released tags
</span><span style='display:block; white-space:pre;color:#404040;'>    into a special branch; this step is now replaced by two conditional
</span><span style='display:block; white-space:pre;color:#404040;'>    steps in the CI that will run for pushed tags and perform the necessary
</span><span style='display:block; white-space:pre;color:#404040;'>    steps automatically.
</span>---
 .github/azure-workflows/main.yml | 86 ++++++++++++++++++++++++++++++++++++++++
 .github/workflows/main.yml       | 85 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 171 insertions(+)

<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 00000000..1b9ceb2c
</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,86 @@
</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;'>+      - "*"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  tags:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    include:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - "v*"
</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;'>+jobs:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  - job: build_and_test_base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    displayName: "Build & Test MacPorts Base"
</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;'>+        displayName: "Checkout repository"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        fetchDepth: 64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - bash: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo mkdir /opt/local.old
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo mv /usr/local/* /opt/local.old
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: "Cleanup /usr/local"
</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;'>+          ./configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: "Configure MacPorts Base"
</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;'>+          make
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: "Build MacPorts Base"
</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;'>+          sudo make install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: "Install MacPorts Base"
</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;'>+          make test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: "Test MacPorts Base"
</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;'>+          sed -i "" "s/-v selfupdate/version/" portmgr/dmg/postflight
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo install -d -m755 /opt/local/libexec/macports/postflight
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo install -m755 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            portmgr/dmg/postflight \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            /opt/local/libexec/macports/postflight/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo install -m644 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            src/*.tcl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            /opt/local/libexec/macports/postflight/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          tar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --exclude '/opt/local/var/macports/sip-workaround/?*' \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -cjf "MacPorts.tar.bz2" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            /opt/local
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/travis-ci'), startsWith(variables['Build.SourceBranch'], 'refs/tags/v')))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: "Prepare Deployment"
</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;'>+          # printf is a built-in, so this won't show up in ps(1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          printf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "machine api.bintray.com\n\tlogin %s\n\tpassword %s\n" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "$user" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "$pass" > ~/.netrc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          chmod 600 ~/.netrc
</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;'>+          macports_version=$(cat config/macports_version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sha256=$(openssl dgst -sha256 -binary "MacPorts.tar.bz2" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              | xxd -ps -c256)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          curl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --upload-file "MacPorts.tar.bz2" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --netrc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --header "X-Checksum-Sha2: ${sha256}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --header "X-Bintray-Package: MacPorts" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --header "X-Bintray-Version: ${macports_version}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --header "X-Bintray-Publish: 1" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --header "X-Bintray-Override: 1" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "https://api.bintray.com/content/macports-ci-env/macports-base/MacPorts-${os_major}.tar.bz2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        env:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          user: "macports-ci-env"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          pass: $(BINTRAY_API_TOKEN)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/travis-ci'), startsWith(variables['Build.SourceBranch'], 'refs/tags/v')))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        displayName: "Deploy to bintray"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000..88a0dc8f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/.github/workflows/main.yml
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,85 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name: "Build & Test MacPorts Base"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+on:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  - push
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  - pull_request
</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;'>+  build:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    name: "Build & Test MacPorts Base"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    runs-on: ${{ matrix.os }}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    strategy:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      matrix:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        os: [macos-10.15, macos-11.0]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    steps:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Checkout repository
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        uses: actions/checkout@v2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        with:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          fetch-depth: 64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Cleanup /usr/local
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo mkdir /opt/local.old
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo mv /usr/local/* /opt/local.old
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Configure MacPorts Base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          ./configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Build MacPorts Base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          make
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Install MacPorts Base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo make install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Test MacPorts Base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          set -eu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          make test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Prepare Deployment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if: github.event_name == 'push' && (github.ref == 'refs/heads/travis-ci' || startsWith(github.ref, 'refs/tags/v'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</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;'>+          sed -i "" "s/-v selfupdate/version/" portmgr/dmg/postflight
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo install -d -m755 /opt/local/libexec/macports/postflight
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo install -m755 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            portmgr/dmg/postflight \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            /opt/local/libexec/macports/postflight/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sudo install -m644 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            src/*.tcl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            /opt/local/libexec/macports/postflight/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          tar \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --exclude '/opt/local/var/macports/sip-workaround/?*' \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -cjf "MacPorts.tar.bz2" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            /opt/local
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      - name: Deploy to bintray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if: github.event_name == 'push' && (github.ref == 'refs/heads/travis-ci' || startsWith(github.ref, 'refs/tags/v'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        run: |
</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;'>+          # printf is a built-in, so this won't show up in ps(1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          printf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "machine api.bintray.com\n\tlogin %s\n\tpassword %s\n" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "$user" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "$pass" > ~/.netrc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          chmod 600 ~/.netrc
</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;'>+          macports_version=$(cat config/macports_version)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          sha256=$(openssl dgst -sha256 -binary "MacPorts.tar.bz2" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              | xxd -ps -c256)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          curl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --upload-file "MacPorts.tar.bz2" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --netrc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --header "X-Checksum-Sha2: ${sha256}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --header "X-Bintray-Package: MacPorts" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --header "X-Bintray-Version: ${macports_version}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --header "X-Bintray-Publish: 1" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --header "X-Bintray-Override: 1" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "https://api.bintray.com/content/macports-ci-env/macports-base/MacPorts-${os_major}.tar.bz2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        env:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          user: "macports-ci-env"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          pass: ${{ secrets.BINTRAY_API_TOKEN }}
</span></pre><pre style='margin:0'>

</pre>