Skip to content

git-gui: Windows support - installer, zip, and CI #9

git-gui: Windows support - installer, zip, and CI

git-gui: Windows support - installer, zip, and CI #9

Workflow file for this run

name: Build .deb packages
on:
push:
branches: ["**"]
tags: ["gitgui-*", "v*"]
workflow_dispatch:
jobs:
build:
name: deb (ubuntu ${{ matrix.ver }})
runs-on: ubuntu-latest
container: ubuntu:${{ matrix.ver }}
strategy:
fail-fast: false
matrix:
ver: ["20.04", "22.04", "24.04", "26.04"]
steps:
# git must be present before checkout, and for GIT-VERSION-GEN (git describe).
- name: Install build dependencies
run: |
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y --no-install-recommends \
git make tcl tk gettext ca-certificates
- uses: actions/checkout@v4
with:
fetch-depth: 0 # full history ...
fetch-tags: true # ... and tags, so git describe sees gitgui-*
- name: Trust the workspace
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- name: Build the .deb
run: bash packaging/build-deb.sh
- name: Smoke-check the package
run: |
deb=$(ls packaging/dist/*.deb)
echo "== $deb =="
dpkg-deb -I "$deb"
dpkg-deb -c "$deb" | grep -E 'git-gui$|git-gui-highlight\.py$'
- uses: actions/upload-artifact@v4
with:
name: git-gui-syntax-ubuntu-${{ matrix.ver }}
path: packaging/dist/*.deb
if-no-files-found: error
windows-zip:
name: windows zip
runs-on: ubuntu-latest
steps:
- name: Install build dependencies
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get update
sudo apt-get install -y --no-install-recommends make tcl tk gettext zip
- uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Build the Windows zip
run: bash packaging/build-windows-zip.sh
- uses: actions/upload-artifact@v4
with:
name: git-gui-pyggy-windows
path: packaging/dist/*.zip
if-no-files-found: error
release:
name: Attach artifacts to the release
needs: [build, windows-zip]
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/download-artifact@v4
with:
path: dist
merge-multiple: true
- uses: softprops/action-gh-release@v2
with:
files: |
dist/*.deb
dist/*.zip
generate_release_notes: true