Skip to content

Release Latest

Release Latest #23

Workflow file for this run

name: Release Latest
on: [workflow_dispatch]
jobs:
GetVersion:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python3 -
echo "${HOME}/.local/bin" >> $GITHUB_PATH
- name: Install dependencies
run: poetry install
- name: Get version number
id: get_version_number
run: |
VERSION_NUMBER=$(poetry run python src/utils/readini.py assets/Version.ini Release VersionNumber)
VERSION_NUMBER_SPACED=${VERSION_NUMBER// /}
echo "VERSION_NUMBER=${VERSION_NUMBER}" >> $GITHUB_ENV
echo "VERSION_NUMBER_SPACED=${VERSION_NUMBER_SPACED}" >> $GITHUB_ENV
BuildExecutable:
runs-on: windows-latest
needs: [GetVersion]
steps:
- uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install poetry
uses: abatilo/actions-poetry@v2
- name: Install dependencies
run: poetry install
- name: Freeze Installer
run: poetry run pyinstaller build-signed.spec
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: InitialBuild
path: dist
retention-days: 1
SignExecutable:
runs-on: self-hosted
needs: [BuildExecutable]
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: InitialBuild
path: dist
- name: Sign Executable
run: signtool sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a .\dist\facecommander\facecommander.exe
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: SignedBuild
path: dist
retention-days: 1
BuildInstaller:
runs-on: windows-latest
needs: [SignExecutable]
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: SignedBuild
path: dist
- name: Build Installer
run: iscc installer.iss
- name: Upload installer
uses: actions/upload-artifact@v4
with:
name: UnsignedInstaller
path: Output
retention-days: 1
SignInstaller:
runs-on: self-hosted
needs: [BuildInstaller, GetVersion]
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: UnsignedInstaller
path: Output
- name: Sign Installer
run: signtool sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /a ./Output/FaceCommander-Installer-${VERSION_NUMBER}.exe
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: SignedInstaller
path: Output
retention-days: 1
Release:
runs-on: self-hosted
needs: [SignInstaller, GetVersion]
steps:
- name: Create tag
uses: actions/github-script@v7
with:
script: |
github.rest.git.createRef({
owner: context.repo.owner,
repo: context.repo.repo,
ref: "refs/tags/${{ env.VERSION_NUMBER_SPACED }}",
sha: context.sha
})
- uses: actions/download-artifact@v4
with:
name: SignedInstaller
path: Output
- name: Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ env.VERSION_NUMBER_SPACED }}
name: ${{ env.VERSION_NUMBER }}
draft: false
prerelease: false
fail_on_unmatched_files: true
files: |
Output/FaceCommander-Installer-${{ env.VERSION_NUMBER }}.exe