Skip to content

Build

Build #5

Workflow file for this run

name: Build
on:
# push:
# tags:
# - '0.1.*'
workflow_dispatch:
inputs:
version:
description: 'version'
required: true
default: '0.1.0'
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Python 3
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Install requirements.txt
run: |
set -eux
python3 -m pip install -r requirements.txt
- name: Build binary with PyInstaller
run: |
set -eux
python3 -m PyInstaller --onefile --windowed main.py --name lancalc
- name: Zip binary
run: |
set -eux
zip -rm dist/lancalc-linux.zip dist/lancalc
- name: List artifacts
run: |
set -eux
tree
- name: Upload artifact for Linux
uses: actions/upload-artifact@v2
with:
# name: artifact
path: dist/
build-macos:
runs-on: macos-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Python 3
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Install requirements
run: |
python3 -m pip install -r requirements.txt
- name: Build binary with PyInstaller
run: |
set -eux
python3 -m PyInstaller --onefile --windowed main.py --name lancalc
- name: Zip binary
run: |
set -eux
zip -rm dist/lancalc-macos.zip dist/lancalc
- name: List artifacts
run: |
set -eux
ls -lah dist
- name: Upload artifact for MacOS
uses: actions/upload-artifact@v2
with:
# name: artifact
path: dist/
build-windows:
runs-on: windows-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Set up Python 3
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Install requirements
run: |
python -m pip install -r requirements.txt
- name: Build binary with PyInstaller
run: |
python -m PyInstaller --onefile --windowed main.py --name lancalc.exe
- name: Zip binary
shell: pwsh
run: |
Compress-Archive -Path dist/lancalc.exe -DestinationPath dist/lancalc-windows.zip
- name: Upload artifact for Windows
uses: actions/upload-artifact@v2
with:
# name: artifact
path: dist/
release:
needs: [build-linux, build-windows, build-macos]
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Download artifacts
uses: actions/download-artifact@v2
with:
# name: artifact
path: dist
- name: List artifacts
run: |
set -eux
tree
- name: Create Release
uses: softprops/action-gh-release@v2
with:
name: Release ${{ github.event.inputs.version }}
tag_name: ${{ github.event.inputs.version }}
body: 'Release ${{ github.event.inputs.version }}'
draft: true
prerelease: false
files: |
dist/artifact/lancalc-linux.zip
dist/artifact/lancalc-macos.zip
dist/artifact/lancalc-windows.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}