7f0c3a4162
This change ports the Travis CI release workflow for macOS to Github Actions. Note that while this is functionally identical to the previous Travis CI flow, no work has been done to update the macOS build scripts to build for arm64.
87 lines
2.6 KiB
YAML
87 lines
2.6 KiB
YAML
name: Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
# This syntax is globs, not regex, so it's matching any tag that
|
|
# contains the prefix "mosh-" and the 3 version elements.
|
|
- "mosh-*.*.*"
|
|
|
|
jobs:
|
|
release:
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-20.04, macos-latest]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: "ensure version bumped"
|
|
run: |
|
|
expected_tag=$(echo ${{ github.ref }} | cut -d'/' -f3)
|
|
have_tag=$(sed -n 's/AC_INIT(\[[^]]*\], \[\([^]]*\)\].*/\1/p' <configure.ac)
|
|
echo "Expected tag <$expected_tag>, got <$have_tag>"
|
|
[[ "$expected_tag" != "$have_tag" ]] && exit 1
|
|
|
|
- name: "setup linux build environment"
|
|
if: ${{ startsWith(matrix.os, 'ubuntu') }}
|
|
run: sudo apt install -y protobuf-compiler libprotobuf-dev libutempter-dev autoconf automake nettle-dev
|
|
|
|
- name: "setup macos build environment"
|
|
if: ${{ startsWith(matrix.os, 'macos') }}
|
|
run: brew install protobuf automake
|
|
|
|
- name: "describe macos build environment"
|
|
if: ${{ startsWith(matrix.os, 'macos') }}
|
|
run: |
|
|
BUILD_TAG=$(echo ${{ github.ref }} | cut -d'/' -f3)
|
|
mkdir macosx/build-report &&
|
|
pushd macosx/build-report &&
|
|
../brew-deps.sh describe &&
|
|
../osx-xcode.sh describe &&
|
|
tar -cjf "../${BUILD_TAG}-osx-build-report.tbz" . &&
|
|
popd
|
|
|
|
- name: "generate build scripts"
|
|
run: ./autogen.sh
|
|
|
|
- name: "configure"
|
|
if: ${{ startsWith(matrix.os, 'ubuntu') }}
|
|
run: ./configure --enable-compile-warnings=error --enable-examples
|
|
|
|
- name: "build"
|
|
if: ${{ startsWith(matrix.os, 'ubuntu') }}
|
|
run: make V=1
|
|
|
|
- name: "test"
|
|
if: ${{ startsWith(matrix.os, 'ubuntu') }}
|
|
run: make V=1 distcheck -j
|
|
|
|
- name: "unshallow git repository for git describe"
|
|
if: ${{ startsWith(matrix.os, 'macos') }}
|
|
run: git fetch --tags --unshallow
|
|
|
|
- name: "macOS package build"
|
|
if: ${{ startsWith(matrix.os, 'macos') }}
|
|
run: |
|
|
pushd macosx &&
|
|
env ZERO_AR_DATE=1 MACOSX_DEPLOYMENT_TARGET=10.12 ./build.sh &&
|
|
popd
|
|
|
|
- name: "Upload Release"
|
|
# v1 aka v0.1.14 as of 2022-07-05; pinned to avoid potential code injection
|
|
uses: softprops/action-gh-release@1e07f4398721186383de40550babbdf2b84acfc5
|
|
with:
|
|
# Action always creates releases in "draft" mode, and requires
|
|
# a maintainer to publish them
|
|
draft: True
|
|
prerelease: contains(github.ref, 'rc')
|
|
generate_release_notes: True
|
|
files: |
|
|
mosh-*.tar.gz
|
|
macosx/*.pkg
|
|
macosx/*-osx-build-report.tbz
|
|
|