Skip to content

build-executable-push #40

build-executable-push

build-executable-push #40

Workflow file for this run

name: Build release
on:
push:
tags:
- v*
repository_dispatch:
types:
- build-executable-pull-request
- build-executable-push
jobs:
build-exe:
runs-on: [self-hosted, etzel]
env:
NORMAL_PUSH_TO_MASTER: ${{github.event_name == 'repository_dispatch' && github.event.client_payload.type == 'build-executable-push'}}
TAG_PUSH_TO_MASTER: ${{github.event_name == 'push'}}
PUSH_TO_PULL_REQUEST: ${{github.event_name == 'repository_dispatch' && github.event.client_payload.type == 'build-executable-pull-request'}}
steps:
- uses: actions/checkout@v3
- name: Report github.event_name and event_type
run: |
echo "Event name: ${{github.event_name}}"
echo "Event type (via client payload): ${{github.event.client_payload.type}}"
echo "Event type (via event_type): ${{github.event.event_type}}"
- name: Remove old venv
run: |
if (Test-Path -LiteralPath venv) {
Remove-Item -LiteralPath venv -Recurse
}
- name: Create virtual environment
run: py -3.12 -m venv venv
- name: Install dependencies
run: |
venv\Scripts\python -m pip install --upgrade pip
venv\Scripts\python -m pip install wheel
venv\Scripts\python -m pip install -r requirements/test.txt
- name: Build executable
run: venv\Scripts\python dev-tools/devTools.py -r
- name: Compute file name
id: fn
run: |
$pytrnsys_gui_sha=$(git rev-parse --short HEAD)
$pytrnsys_sha=$(release\build\pytrnsys\python-3.12.1-embed-amd64\python.exe release\getInstalledPytrnsysGitSha.py)
$ref_name="${{github.ref_name}}".replace("/","-")
echo "file_name_base=pytrnsys-gui-${ref_name}-${pytrnsys_gui_sha}-${pytrnsys_sha}" >> $env:GITHUB_OUTPUT
- if: env.TAG_PUSH_TO_MASTER == 'true' || env.NORMAL_PUSH_TO_MASTER == 'true'
name: Create zip file
run: mv release\build\pytrnsys.zip ${{steps.fn.outputs.file_name_base}}.zip
- if: env.NORMAL_PUSH_TO_MASTER == 'true'
name: Release artifacts (bleeding-edge)
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{secrets.GITHUB_TOKEN}}"
automatic_release_tag: "bleeding-edge"
prerelease: true
title: "Development Build"
# ATTENTION: `action-automatic-releases` *needs* forward slashes in the paths given to `files`.
files: ${{steps.fn.outputs.file_name_base}}.zip
- if: env.TAG_PUSH_TO_MASTER == 'true'
name: Release artifacts (proper release)
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{secrets.GITHUB_TOKEN}}"
title: "Release"
prerelease: false
# ATTENTION: `action-automatic-releases` *needs* forward slashes in the paths given to `files`.
files: ${{steps.fn.outputs.file_name_base}}.zip
- if: env.PUSH_TO_PULL_REQUEST == 'true'
name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: ${{steps.fn.outputs.file_name_base}}
path: |
release\build\pytrnsys\site-packages\pytrnsys_gui_data
release\build\pytrnsys\site-packages\pytrnsys_data
release\build\pytrnsys