Skip to content

Ensure stage versions #44

Ensure stage versions

Ensure stage versions #44

Workflow file for this run

name: Release
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+-[a-z]+'
- 'v[0-9]+.[0-9]+.[0-9]+-[a-z]+.[0-9]+'
workflow_dispatch:
inputs:
stage:
description: Target plugin build stage
required: true
type: choice
default: production
options:
- production
- beta
env:
BUILD_TYPE: Release
PLUGIN_NAME: Rotor
PLUGIN_VERSION: 1.0.0
BUNDLE_ID: com.bbx-audio.rotor
jobs:
# Build:
# name: Build Release (${{ matrix.name }})
# uses: ./.github/workflows/build.reusable.yml
# strategy:
# fail-fast: true
# matrix:
# include:
# - name: macOS
# os: macos-13
# - name: Windows
# os: windows-2022
# with:
# os: ${{ matrix.os }}
# build_type: ${{ env.BUILD_TYPE }}
# upload_artifacts: ${{ true }}
#
# Package:
# name: Package (${{ matrix.name }})
# runs-on: ${{ matrix.os }}
# needs: [ Build ]
# strategy:
# fail-fast: false
# matrix:
# include:
# - name: macOS
# os: macos-13
# - name: Windows
# os: windows-2022
# steps:
# - name: Checkout Repository
# uses: actions/checkout@v4
#
# - name: Download Artifacts
# uses: actions/download-artifact@v4
# with:
# name: ${{ env.PLUGIN_NAME }}-${{ matrix.name }}
#
# - name: Delete Artifacts
# uses: geekyeggo/delete-artifact@v5
# with:
# name: ${{ env.PLUGIN_NAME }}-${{ matrix.name }}
#
# - name: Set Environment Variables
# shell: bash
# run: |
# ARTIFACTS_PATH=${{ env.PLUGIN_NAME }}-${{ matrix.name }}
# echo "VST3_PATH=${{ env.PLUGIN_NAME }}.vst3" >> $GITHUB_ENV
# echo "AU_PATH=${{ env.PLUGIN_NAME }}.component" >> $GITHUB_ENV
# echo "ARTIFACT_NAME=${{ env.PLUGIN_NAME }} v${{ env.PLUGIN_VERSION }} (${{ runner.os }})" >> $GITHUB_ENV
#
# - name: Import Certificates (MacOS)
# uses: apple-actions/import-codesign-certs@v3
# if: ${{ matrix.name == 'macOS' }}
# with:
# p12-file-base64: ${{ secrets.DEVELOPER_ID_CERTIFICATIONS }}
# p12-password: ${{ secrets.DEVELOPER_ID_CERTIFICATIONS_PASSWORD }}
#
# - name: Sign Binaries (MacOS)
# if: ${{ matrix.name == 'macOS' }}
# run: |
# codesign --force -s "${{ secrets.DEVELOPER_ID_APP }}" -v "${{ env.VST3_PATH }}" --deep --strict --options=runtime --timestamp
# codesign --verify --deep --strict --verbose=2 "${{ env.VST3_PATH }}"
# codesign --force -s "${{ secrets.DEVELOPER_ID_APP }}" -v "${{ env.AU_PATH }}" --deep --strict --options=runtime --timestamp
# codesign --verify --deep --strict --verbose=2 "${{ env.AU_PATH }}"
#
# - name: Download Packages (MacOS)
# if: ${{ matrix.name == 'macOS' }}
# run: wget http://s.sudre.free.fr/Software/files/Packages.dmg
#
# - name: Mount Packages (MacOS)
# if: ${{ matrix.name == 'macOS' }}
# run: hdiutil attach Packages.dmg
#
# - name: Install Packages (MacOS)
# if: ${{ matrix.name == 'macOS' }}
# run: sudo installer -pkg /Volumes/Packages\ 1.2.10/Install\ Packages.pkg -target /
#
# - name: Build Installer (MacOS)
# if: ${{ matrix.name == 'macOS' }}
# run: packagesbuild packaging/Rotor.pkgproj
#
# - name: Sign Installer (MacOS)
# if: ${{ matrix.name == 'macOS' }}
# run: |
# mkdir -p packaging/build/signed
# productsign -s "${{ secrets.DEVELOPER_ID_INSTALLER }}" "packaging/build/${{ env.PLUGIN_NAME }}.pkg" "packaging/build/signed/${{ env.PLUGIN_NAME }}.pkg"
# pkgutil --check-signature "packaging/build/signed/${{ env.PLUGIN_NAME }}.pkg"
#
# - name: Package Installer (MacOS)
# if: ${{ matrix.name == 'macOS' }}
# run: |
# # Setup tools and directories
# python3 -m pip install setuptools --break-system-packages
# npm install -g appdmg
# mkdir -p packaging/dmg
# mv packaging/build/signed/${{ env.PLUGIN_NAME }}.pkg packaging/dmg
#
# # Create the .dmg
# cd packaging && appdmg dmg.json "${{ env.ARTIFACT_NAME }}.dmg"
# codesign -s "${{ secrets.DEVELOPER_ID_APP }}" --timestamp -i ${{ env.BUNDLE_ID }} --force "${{ env.ARTIFACT_NAME }}.dmg"
# xcrun notarytool submit "${{ env.ARTIFACT_NAME }}.dmg" --apple-id ${{ secrets.APPLE_NOTARIZATION_USERNAME }} --password ${{ secrets.APPLE_NOTARIZATION_PASSWORD }} --team-id ${{ secrets.DEVELOPER_TEAM_ID }} --wait
# xcrun stapler staple "${{ env.ARTIFACT_NAME }}.dmg"
#
# - name: Upload DMG (MacOS)
# if: ${{ matrix.name == 'macOS' }}
# uses: actions/upload-artifact@v4
# with:
# name: ${{ env.ARTIFACT_NAME }}
# path: packaging/${{ env.ARTIFACT_NAME }}.dmg
Release:
if: startsWith(github.event.ref, 'refs/tags/v')
runs-on: ubuntu-latest
# needs: [ Package ]
steps:
- name: Download Artifacts
uses: actions/download-artifact@v4
- name: Set Environment Variables
shell: bash
run: |
VERSION=${GITHUB_REF#refs/tags/v}
STAGE_INFO=$(echo "$VERSION" | perl -0777 -pe 's/^([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([a-z]+)(?:\.([0-9]+))?)?$/\1 \2 \3 \4 \5/')
MAJOR=$(echo "$STAGE_INFO" | awk '{print $1}')
MINOR=$(echo "$STAGE_INFO" | awk '{print $2}')
PATCH=$(echo "$STAGE_INFO" | awk '{print $3}')
STAGE=$(echo "$STAGE_INFO" | awk '{print $4}')
STAGE_VERSION=$(echo "$STAGE_INFO" | awk '{print $5}')
if [ -z "$STAGE" ]; then
RELEASE_NAME="${{ env.PLUGIN_NAME }} v$MAJOR.$MINOR.$PATCH"
STAGE=production
else
if [ -z "$STAGE_VERSION" ]; then
STAGE_VERSION=1
fi
RELEASE_NAME="${{ env.PLUGIN_NAME }} v$MAJOR.$MINOR.$PATCH-$STAGE.$STAGE_VERSION"
fi
echo "VERSION=$MAJOR.$MINOR.$PATCH" >> $GITHUB_ENV
echo "STAGE=$STAGE" >> $GITHUB_ENV
echo "STAGE_VERSION=$STAGE_VERSION" >> $GITHUB_ENV
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
- name: Prepare Body
shell: bash
run: |
touch CHANGELOG.md
echo "### Changelog" >> CHANGELOG.md
echo "------" >> CHANGELOG.md
- name: Draft Release
uses: softprops/action-gh-release@v2
with:
name: ${{ env.RELEASE_NAME }}
prerelease: ${{ env.STAGE != 'production' }}
draft: true
body_path: ./CHANGELOG.md
files: |
*/*.dmg