Skip to content

windows-packaging

windows-packaging #70

name: windows-packaging
on:
push:
tags:
- "v*"
workflow_dispatch:
inputs:
version:
description: Optional version to package (for example 0.1.0, 0.1.1-rc2, or v0.1.0).
required: false
type: string
permissions:
contents: write
jobs:
resolve-version:
runs-on: ubuntu-latest
outputs:
package_version: ${{ steps.version.outputs.package_version }}
steps:
- id: version
shell: bash
run: |
set -euo pipefail
version='${{ github.event.inputs.version }}'
if [[ -z "$version" && '${{ github.ref_type }}' == 'tag' ]]; then
version='${{ github.ref_name }}'
fi
version="${version#v}"
printf 'package_version=%s\n' "$version" >> "$GITHUB_OUTPUT"
build-msi:
needs: resolve-version
uses: danjboyd/gnustep-packager/.github/workflows/package-gnustep-app.yml@bac42892f79ae1c7d56017d7cdb1d1637d729e6b
with:
manifest-path: packaging/manifests/windows-msi.manifest.json
backend: msi
package-version: ${{ needs.resolve-version.outputs.package_version }}
packager-repository: danjboyd/gnustep-packager
packager-ref: bac42892f79ae1c7d56017d7cdb1d1637d729e6b
run-validation: true
run-smoke: true
upload-artifacts: true
artifact-name: objcmarkdown-windows
secrets: inherit
publish-release-assets:
if: github.ref_type == 'tag'
needs:
- build-msi
runs-on: ubuntu-latest
steps:
- name: Download Windows Package Artifacts
uses: actions/download-artifact@v4
with:
name: objcmarkdown-windows-packages
path: dist/windows
- name: Stage Windows Release Assets
shell: bash
run: |
set -euo pipefail
mkdir -p release-assets
cp dist/windows/*.msi release-assets/
if compgen -G 'dist/windows/*-portable.zip' > /dev/null; then
cp dist/windows/*-portable.zip release-assets/
fi
if compgen -G 'dist/windows/*.update-feed.json' > /dev/null; then
cp dist/windows/*.update-feed.json release-assets/
fi
if compgen -G 'dist/windows/*.metadata.json' > /dev/null; then
cp dist/windows/*.metadata.json release-assets/
fi
if compgen -G 'dist/windows/*.diagnostics.txt' > /dev/null; then
cp dist/windows/*.diagnostics.txt release-assets/
fi
- name: Publish Windows Release Assets
uses: softprops/action-gh-release@v2
with:
files: release-assets/*