Build Windows Package #90
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Windows Package | |
on: | |
push: | |
tags: | |
- 'v*' | |
release: | |
types: [published] | |
jobs: | |
build_win: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Set up Python 3.9 | |
uses: actions/setup-python@v2 | |
with: | |
python-version: 3.9 | |
- name: Install dependencies and pynsist | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
pip install pynsist | |
sudo apt-get install nsis | |
- name: Build package | |
run: | | |
python -m nsist pynsist.cfg | |
- name: Get versions into environment | |
run: | | |
VERSION=$(python setup.py --version) | |
TAG_VERSION=${GITHUB_REF##*/v} | |
TAG_FULL=${GITHUB_REF##*/} | |
echo "setup_version=$VERSION" >> $GITHUB_ENV | |
echo "tag_version=$TAG_VERSION" >> $GITHUB_ENV | |
echo "tag_full=$TAG_FULL" >> $GITHUB_ENV | |
#- name: Compare versions and report | |
# run: | | |
# echo "setup.py version: ${{ env.setup_version }}" | |
# echo "Latest tag version: ${{ env.tag_version }}" | |
# if [[ ${{ env.setup_version }} != ${{ env.tag_version }} ]]; then | |
# echo "Versions are not identical -> quitting workflow." | |
# exit 23 | |
# else | |
# echo "OK, versions match -> creating release." | |
# exit 0 | |
# fi | |
- name: "Get latest release" | |
id: last_release | |
uses: InsonusK/get-latest-release@v1.0.1 | |
with: | |
myToken: ${{ secrets.GITHUB_TOKEN }} | |
exclude_types: "" | |
view_top: 1 | |
- name: "Print latest release results" | |
run: | | |
echo "id: ${{ steps.last_release.outputs.id }}" | |
echo "name: ${{ steps.last_release.outputs.name }}" | |
echo "tag_name: ${{ steps.last_release.outputs.tag_name }}" | |
echo "created_at: ${{ steps.last_release.outputs.created_atd }}" | |
echo "draft: ${{ steps.last_release.outputs.draft }}" | |
echo "prerelease: ${{ steps.last_release.outputs.prerelease }}" | |
- name: "Check if release is existing and where to upload asset" | |
id: check | |
run: | | |
if [[ "${{ steps.last_release.outputs.tag_name }}" == "${{ env.tag_full }}" ]]; | |
then | |
echo "::set-output name=release_existing::true" | |
URL='https://uploads.github.com/repos/JOJ0/discodos/releases/${{ steps.last_release.outputs.id }}/assets{?name,label}' | |
echo "upload_url=$URL" >> $GITHUB_ENV | |
else | |
echo "::set-output name=release_existing::false" | |
echo "upload_url=" >> $GITHUB_ENV # will be filled by create_relase | |
fi | |
- name: Create release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: v${{ env.tag_version }} | |
release_name: DiscoDOS v${{ env.tag_version }} | |
body: | | |
This is an autogenerated DiscoDOS release. | |
Proper release notes coming soon... | |
draft: false | |
prerelease: true | |
if: ${{ steps.check.outputs.release_existing == 'false' }} | |
- name: "Update asset upload_url from create_release step" | |
id: update_url | |
run: | | |
echo "upload_url=${{ steps.create_release.outputs.upload_url }}" >> $GITHUB_ENV | |
if: ${{ steps.check.outputs.release_existing == 'false' }} | |
- name: Upload Windows package to release assets | |
id: upload-release-asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
# This pulls from the CREATE RELEASE step above, referencing it's ID to | |
# get its outputs object, which include a `upload_url`. See this blog | |
# post for more info: | |
# https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps | |
#upload_url: ${{ steps.create_release.outputs.upload_url }} | |
upload_url: ${{ env.upload_url }} | |
asset_path: ./build/nsis/DiscoDOS_${{ env.tag_version }}.exe | |
asset_name: "DiscoDOS-${{ env.tag_version }}-Win.exe" | |
#asset_name: DiscoDOS-random | |
asset_content_type: application/exe |