mirror of
https://github.com/DJ2LS/FreeDATA
synced 2024-05-14 08:04:33 +00:00
a4a59b3edf
we want to have the tnc binaries as standalone files in our releases as well. So this is the first attempt...
171 lines
5.3 KiB
YAML
171 lines
5.3 KiB
YAML
name: Windows Nightly
|
|
on:
|
|
push:
|
|
#tags:
|
|
#- '*'
|
|
|
|
jobs:
|
|
|
|
build_windows_release:
|
|
name: Build Windows release
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [windows-latest]
|
|
include:
|
|
- os: windows-latest
|
|
zip_name: windows_tnc
|
|
generator: Visual Studio 16 2019
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v2
|
|
with:
|
|
ref: ls-leave-prototype
|
|
|
|
- name: Set up Python 3.9
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.9
|
|
|
|
- name: Install Python dependencies
|
|
if: matrix.os == 'windows-latest'
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install psutil
|
|
pip install crcengine
|
|
pip install pyinstaller
|
|
pip install ujson
|
|
pip install pyserial
|
|
pip install numpy
|
|
pip install structlog
|
|
pip install colorama
|
|
# curl.exe --output PyAudio-0.2.11-cp39-cp39-win_amd64.whl --url https://download.lfd.uci.edu/pythonlibs/y2rycu7g/PyAudio-0.2.11-cp39-cp39-win_amd64.whl
|
|
# pip install PyAudio-0.2.11-cp39-cp39-win_amd64.whl
|
|
|
|
- name: Install Pyaudio
|
|
if: matrix.os == 'windows-latest'
|
|
working-directory: tnc/lib/pyaudio/windows
|
|
run: |
|
|
pip install PyAudio-0.2.11-cp39-cp39-win_amd64.whl
|
|
|
|
|
|
- name: Build Windows Daemon and TNC
|
|
if: matrix.os == 'windows-latest'
|
|
working-directory: tnc
|
|
run: |
|
|
pyinstaller freedata.spec
|
|
|
|
- name: Copy TNC to GUI
|
|
shell: bash
|
|
run: |
|
|
cp -R ./tnc/dist/tnc ./gui/tnc
|
|
|
|
- name: LIST ALL FILES
|
|
shell: bash
|
|
run: |
|
|
ls -R
|
|
|
|
- name: Archive TNC
|
|
uses: thedoctor0/zip-release@master
|
|
with:
|
|
type: 'zip'
|
|
filename: 'FreeDATA_windows.zip'
|
|
directory: ./tnc/dist/tnc
|
|
path: ./tnc/dist/tnc
|
|
#exclusions: '*.git* /*node_modules/* .editorconfig'
|
|
|
|
- name: LIST ALL FILES
|
|
shell: bash
|
|
working-directory: tnc
|
|
run: |
|
|
ls -R
|
|
|
|
- name: Release TNC
|
|
uses: softprops/action-gh-release@v1
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
with:
|
|
files: ./tnc/dist/tnc/${{ matrix.zip_name }}.zip
|
|
|
|
|
|
#- name: Build codec2
|
|
# shell: bash
|
|
# run: |
|
|
# choco install ninja cmake
|
|
# ninja --version
|
|
# cmake --version
|
|
|
|
- name: Install Node.js, NPM and Yarn
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: 16
|
|
|
|
|
|
- name: Build/release Electron app
|
|
uses: samuelmeuli/action-electron-builder@v1
|
|
with:
|
|
package_root: "./gui/"
|
|
github_token: ${{ secrets.github_token }}
|
|
# If the commit is tagged with a version (e.g. "v1.0.0"),
|
|
# release the app after building
|
|
release: ${{ startsWith(github.ref, 'refs/tags/v') }}
|
|
|
|
- name: LIST ALL FILES
|
|
shell: bash
|
|
run: |
|
|
ls -R
|
|
|
|
|
|
- name: Create app bundle
|
|
shell: bash
|
|
run: |
|
|
mkdir gui-bundle
|
|
cp -R ./gui/dist/win-unpacked/ gui-bundle
|
|
cp -R ./tnc/dist/tnc gui-bundle/win-unpacked
|
|
|
|
- name: LIST ALL FILES
|
|
shell: bash
|
|
run: |
|
|
ls -R
|
|
|
|
|
|
- name: Archive Release
|
|
uses: thedoctor0/zip-release@master
|
|
with:
|
|
type: 'zip'
|
|
filename: 'FreeDATA_windows.zip'
|
|
directory: ./gui-bundle/win-unpacked/
|
|
path: .
|
|
#exclusions: '*.git* /*node_modules/* .editorconfig'
|
|
|
|
- name: Release TNC
|
|
uses: softprops/action-gh-release@v1
|
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
with:
|
|
files: ./tnc/dist/compressed/${{ matrix.zip_name }}.zip
|
|
|
|
|
|
|
|
- name: Upload Windows GUI Bundle artifacts
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: gui-bundle-windows-artifact
|
|
path: ./gui-bundle/win-unpacked/FreeDATA_windows.zip
|
|
|
|
- name: LIST ALL FILES
|
|
shell: bash
|
|
run: |
|
|
ls -R
|
|
|
|
- name: Release
|
|
uses: WebFreak001/deploy-nightly@v1.1.0
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: https://uploads.github.com/repos/DJ2LS/FreeDATA/releases/48616289/assets{?name,label} # find out this value by opening https://api.github.com/repos/<owner>/<repo>/releases in your browser and copy the full "upload_url" value including the {?name,label} part
|
|
release_id: 48616289 # same as above (id can just be taken out the upload_url, it's used to find old releases)
|
|
asset_path: ./gui-bundle/win-unpacked/FreeDATA_windows.zip # path to archive to upload
|
|
asset_name: FreeDATA_windows-nightly-$$.zip # name to upload the release as, use $$ to insert date (YYYYMMDD) and 6 letter commit hash
|
|
asset_content_type: application/zip # required by GitHub API
|
|
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
|
|
|