Files
mosh/.github/workflows/release.yml
T
Alex Chernyakhovsky 7f0c3a4162 Add macOS release steps to Github Actions
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.
2022-07-11 21:21:18 -04:00

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