-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #55 from Picorims/develop
release 0.3.2
- Loading branch information
Showing
88 changed files
with
10,091 additions
and
7,252 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node | ||
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs | ||
|
||
name: Node.js CI | ||
|
||
on: | ||
push: | ||
branches: [ "develop" ] | ||
pull_request: | ||
branches: [ "develop" ] | ||
|
||
jobs: | ||
build: | ||
|
||
runs-on: windows-latest | ||
|
||
strategy: | ||
matrix: | ||
node-version: [16.x, 18.x] | ||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/ | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Use Node.js ${{ matrix.node-version }} | ||
uses: actions/setup-node@v3 | ||
with: | ||
node-version: ${{ matrix.node-version }} | ||
cache: 'npm' | ||
- run: npm ci | ||
# - run: npm run build --if-present | ||
- run: npm test |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
# This workflow will run tests using node, make artifacts for all supported OSs and finally upload them in a release | ||
# For more information see: https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages | ||
|
||
name: Node.js Package | ||
|
||
on: | ||
push: | ||
# Sequence of patterns matched against refs/tags | ||
tags: | ||
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 | ||
|
||
jobs: | ||
# Build artifacts for each supported OS | ||
build: | ||
runs-on: ${{ matrix.os }} | ||
|
||
strategy: | ||
matrix: | ||
os: [ubuntu-latest, windows-latest] | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/setup-node@v3 | ||
with: | ||
node-version: 16 | ||
- name: Add Wix to path on Windows | ||
if: matrix.os == 'windows-latest' | ||
run: | | ||
Add-Content $env:GITHUB_PATH "C:\Program Files (x86)\WiX Toolset v3.11\bin" | ||
# https://github.com/electron/forge/issues/2662 | ||
# - name: install maker-flatpak dependencies | ||
# if: matrix.os == 'ubuntu-latest' | ||
# run: | | ||
# sudo apt-get install flatpak -y | ||
# sudo apt-get install flatpak-builder -y | ||
# sudo apt-get install elfutils -y | ||
# sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo | ||
# sudo flatpak install flathub org.freedesktop.Platform/x86_64/19.08 org.freedesktop.Sdk/x86_64/19.08 org.electronjs.Electron2.BaseApp/x86_64/stable -y | ||
- name: Install node modules | ||
run: npm install # the package lock is windows dependant, so ci can't be used here. | ||
- name: Make packages | ||
run: npm run make | ||
- name: Upload build artifacts | ||
uses: actions/[email protected] | ||
with: | ||
# Artifact name | ||
name: artifact-${{ matrix.os }} # optional, default is artifact | ||
# A file, directory or wildcard pattern that describes what to upload | ||
path: out/make/* | ||
# The desired behavior if no files are found using the provided path. | ||
# Available Options: | ||
#warn: Output a warning but do not fail the action | ||
#error: Fail the action with an error message | ||
#ignore: Do not output any warnings or errors, the action does not fail | ||
|
||
#if-no-files-found: # optional, default is warn | ||
# Duration after which artifact will expire in days. 0 means using default retention. | ||
#Minimum 1 day. Maximum 90 days unless changed from the repository settings page. | ||
|
||
#retention-days: # optional | ||
|
||
publish-to-release: | ||
needs: build | ||
|
||
runs-on: ubuntu-latest | ||
|
||
permissions: | ||
contents: write | ||
|
||
steps: | ||
- name: Download all artifacts | ||
uses: actions/[email protected] | ||
#with: | ||
# Artifact name | ||
#name: artifact-ubuntu-latest # optional | ||
# Destination path | ||
#path: # optional | ||
# https://github.com/softprops/action-gh-release | ||
- name: Display structure of downloaded files | ||
run: ls -R | ||
- name: GH Release | ||
# You may pin to the exact commit or the version. | ||
# uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 | ||
uses: softprops/[email protected] | ||
with: | ||
# Note-worthy description of changes in release | ||
#body: # optional | ||
# Path to load note-worthy description of changes in release from | ||
#body_path: # optional | ||
# Gives the release a custom name. Defaults to tag name | ||
#name: # optional | ||
# Gives a tag name. Defaults to github.GITHUB_REF | ||
#tag_name: # optional | ||
# Creates a draft release. Defaults to false | ||
draft: true # optional | ||
# Identify the release as a prerelease. Defaults to false | ||
#prerelease: # optional | ||
# Newline-delimited list of path globs for asset files to upload | ||
files: | # optional | ||
artifact-windows-latest/zip/win32/x64/*.zip | ||
artifact-windows-latest/wix/x64/*.msi | ||
artifact-ubuntu-latest/zip/linux/x64/*.zip | ||
# Fails if any of the `files` globs match nothing. Defaults to false | ||
#fail_on_unmatched_files: # optional | ||
# Repository to make releases against, in <owner>/<repo> format | ||
#repository: # optional | ||
# Authorized secret GitHub Personal Access Token. Defaults to github.token | ||
#token: # optional, default is ${{ github.token }} | ||
# Commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. | ||
#target_commitish: # optional | ||
# If specified, a discussion of the specified category is created and linked to the release. The value must be a category that already exists in the repository. If there is already a discussion linked to the release, this parameter is ignored. | ||
#discussion_category_name: # optional | ||
# Whether to automatically generate the name and body for this release. If name is specified, the specified name will be used; otherwise, a name will be automatically generated. If body is specified, the body will be pre-pended to the automatically generated notes. | ||
#generate_release_notes: # optional | ||
# Append to existing body instead of overwriting it. Default is false. | ||
#append_body: # optional | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,4 +14,7 @@ user/settings/user_settings.json | |
|
||
#else | ||
ffmpeg/ | ||
node_modules/ | ||
node_modules/ | ||
|
||
# github stuff | ||
!.github/ |
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,6 +8,7 @@ A tool to make custom audio visualization and export production videos for the a | |
- **This tool is a side project and is provided as is, without garantee of long term maintenance. If this is fine for you, you can proceed. Enjoy!** | ||
- **This tool is usable at this point, but is still in early development! Your work is subject to bugs, backup your saves!** | ||
- Git LFS used to be used for node_modules and FFMpeg, but is no longer used. Both of these folders have been removed from the repository, but not its history. You do not need to clone them. Git LFS files are no longer included in archive downloads. **If you want a full release source code archive, go to the releases section. This will include node_modules, but not FFmpeg** (which can be downloaded from their official website compiled and packaged). | ||
- I know this is some Frankenstein of a project with an awful architecture, questionnable decisions (why my own UI system and state machine when you have all kinds of frameworks and libs?). It is something I started in high school and that I tried to continuously improve with refreshed novel (which explains the mix of module and non module JS for example). At the same time it is my sandbox for experimentations (custom UI, state machine, etc.). So yeah, it has a lot of awful stuff but I am just having fun there. Which doesn't mean I neglect it either. I have limited time and energy, that I try to avoid spending on endless refactoring (easier said than done). Check the FAQ in the development guidelines file for additional information. | ||
|
||
## Hacking | ||
- NodeJS must be installed (It will install npm too). | ||
|
@@ -23,8 +24,8 @@ Compilation settings are detailed in package.JSON at the "config" node. You can | |
|
||
FFmpeg should be installed independently and not compiled in the application. | ||
|
||
#### ZIP | ||
Zip maker is available for all platforms, without any dependencies required. On Windows, it will produce an executable (.exe) to run the app from anywhere on a Windows machine, without any installation process. | ||
### ZIP (Windows, Linux) | ||
Zip maker is available for all platforms, without any dependencies required. It will produce an executable to run the app from anywhere on your machine, without any installation process. Use this if you want a portable installation, that can for example be kept on an external storage device (like a USB stick). | ||
|
||
### Windows specific | ||
|
||
|
@@ -33,15 +34,22 @@ This maker create a Windows .msi installer. To make a .msi installer, Wix must b | |
**The paths for the installer assets are absolute, don't forget to change them in package.json or the make command will fail!** | ||
|
||
### Linux specific | ||
There are existing configurations for .deb and .rpm packages **although they have not been tested** as I have no viable Linux development environment at the moment. | ||
|
||
#### .deb packages | ||
.deb packages can be made on MacOS and Linux machines with `fakeroot` and `dpkg` packages installed. | ||
See https://www.electronforge.io/config/makers/deb | ||
#### flatpak | ||
|
||
**This option is currently configured but NOT available due to this issue: https://github.com/electron/forge/issues/2561** | ||
|
||
This maker creates a flatpak package, which is a sandboxed package that helps deploying applications to many Linux distributions at a time. | ||
|
||
As per the Electron Forge documentation (https://www.electronforge.io/config/makers/flatpak): | ||
> You can only build the Flatpak target if you have flatpak, flatpak-builder, and eu-strip (usually part of the elfutils package) installed on your system. | ||
#### deb and rpm | ||
~~There are existing configurations for .deb and .rpm packages **although they have not been tested** as I have no viable Linux development environment at the moment.~~ | ||
|
||
`deb` and `rpm` packages have been abandoned as their packaging never worked, and Linux support is otherwise guaranteed from other package formats. Instead (if it works), `flatpak` support should be introduced in a future release. | ||
|
||
|
||
#### .rpm packages | ||
.rpm packages can be made on Linux machines with `rpm` or `rpm-build` packages installed. | ||
See https://www.electronforge.io/config/makers/rpm. | ||
|
||
### Mac Specific | ||
|
||
|
@@ -58,7 +66,7 @@ See `docs/cli.md` for more details. | |
This tool is licensed under GPL-3.0-or-later | ||
|
||
Wav2Bar - Free software for creating audio visualization (motion design) videos | ||
Copyright (C) 2022 Picorims <[email protected]> | ||
Copyright (C) 2023 Picorims <[email protected]> | ||
|
||
This program is free software: you can redistribute it and/or modify | ||
it under the terms of the GNU General Public License as published by | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
//Wav2Bar - Free software for creating audio visualization (motion design) videos | ||
//Copyright (C) 2022 Picorims <[email protected]> | ||
//Copyright (C) 2023 Picorims <[email protected]> | ||
|
||
//This program is free software: you can redistribute it and/or modify | ||
//it under the terms of the GNU General Public License as published by | ||
|
Oops, something went wrong.