mirror of
https://github.com/dcs-liberation/dcs_liberation.git
synced 2025-11-10 14:22:26 +00:00
final and buildnumber are optional files. Move them into resources to
avoid naming them explicitly.
(cherry picked from commit fae9650f56)
126 lines
3.7 KiB
YAML
126 lines
3.7 KiB
YAML
name: Release Pipeline
|
|
|
|
on:
|
|
push:
|
|
tags: [ '*' ]
|
|
|
|
jobs:
|
|
|
|
build:
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Set up Python 3.8
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.8
|
|
|
|
- name: Install environment
|
|
run: |
|
|
python -m venv ./venv
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
./venv/scripts/activate
|
|
python -m pip install -r requirements.txt
|
|
# For some reason the shiboken2.abi3.dll is not found properly, so I copy it instead
|
|
Copy-Item .\venv\Lib\site-packages\shiboken2\shiboken2.abi3.dll .\venv\Lib\site-packages\PySide2\ -Force
|
|
|
|
- name: Finalize version
|
|
run: |
|
|
New-Item -ItemType file resources\final
|
|
|
|
- name: mypy game
|
|
run: |
|
|
./venv/scripts/activate
|
|
mypy game
|
|
|
|
- name: mypy gen
|
|
run: |
|
|
./venv/scripts/activate
|
|
mypy gen
|
|
|
|
- name: mypy theater
|
|
run: |
|
|
./venv/scripts/activate
|
|
mypy theater
|
|
|
|
- name: Build binaries
|
|
run: |
|
|
./venv/scripts/activate
|
|
$env:PYTHONPATH=".;./pydcs"
|
|
pyinstaller pyinstaller.spec
|
|
|
|
- name: Create Installer
|
|
env:
|
|
TAG_NAME: ${{ github.ref }}
|
|
run: |
|
|
$version = ($env:TAG_NAME -split "/") | Select-Object -Last 1
|
|
(Get-Content .\installer\dcs_liberation.iss) -replace "{{version}}",$version | Out-File .\build\installer.iss
|
|
cd .\installer
|
|
iscc.exe ..\build\installer.iss
|
|
cd ..
|
|
Copy-Item .\changelog.md .\dist
|
|
|
|
- uses: actions/upload-artifact@v2
|
|
with:
|
|
name: dcs_liberation
|
|
path: dist/
|
|
|
|
release:
|
|
needs: [ build ]
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/download-artifact@v2
|
|
with:
|
|
name: dcs_liberation
|
|
|
|
- name: "Get Version"
|
|
id: version
|
|
env:
|
|
TAG_NAME: ${{ github.ref }}
|
|
run: |
|
|
Get-ChildItem -Recurse -Depth 1
|
|
$version = ($env:TAG_NAME -split "/") | Select-Object -Last 1
|
|
$prerelease = ("2.1.1-alpha3" -match '[^\.\d]').ToString().ToLower()
|
|
Write-Host $version
|
|
Write-Host $prerelease
|
|
Write-Output "::set-output name=number::$version"
|
|
Write-Output "::set-output name=prerelease::$prerelease"
|
|
$changelog = Get-Content .\changelog.md
|
|
$last_change = ($changelog | Select-String -Pattern "^#\s" | Select-Object -Skip 1 -First 1).LineNumber - 2
|
|
($changelog | Select-Object -First $last_change) -join "`n" | Out-File .\releasenotes.md
|
|
Compress-Archive -Path .\dcs_liberation -DestinationPath "dcs_liberation.$version.zip" -Compression Optimal
|
|
|
|
- uses: actions/create-release@v1
|
|
id: create_release
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ github.ref }}
|
|
release_name: ${{ github.ref }}
|
|
body_path: releasenotes.md
|
|
draft: false
|
|
prerelease: ${{ steps.version.outputs.prerelease }}
|
|
|
|
- uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
asset_path: ./dcs_liberation.exe
|
|
asset_name: dcs_liberation.${{ steps.version.outputs.number }}.exe
|
|
asset_content_type: application/exe
|
|
|
|
- uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
asset_path: ./dcs_liberation.${{ steps.version.outputs.number }}.zip
|
|
asset_name: dcs_liberation.${{ steps.version.outputs.number }}.zip
|
|
asset_content_type: application/zip
|
|
|