Skip to content

fix module stuff MORE #83

fix module stuff MORE

fix module stuff MORE #83

Workflow file for this run

# This workflow builds the AYAB release packages
# for Windows, Mac OSX, and Ubuntu/Debian Linux.
#
# The build starts when a version tag is pushed.
# Release assets are also uploaded as workflow
# artifacts, so that they are still available
# for test releases after the release and its
# tag have been deleted.
#
# Script adapted from https://github.com/trappitsch/fbs-release-github-actions
#
# @author Tom Price
# @date July 2020
name: Build
on:
push:
tags:
- "v?[0-9]+.[0-9]+.[0-9]+-?[a-zA-Z0-9]*"
jobs:
setup:
name: Create cache
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: [3.11]
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: recursive
- name: Set variables
id: vars
run: |
echo "sha-short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
echo "tag=$(git describe --tags)" >> $GITHUB_OUTPUT
echo "draft=$(git describe --tags | sed -e 's/^test.*/true/;s/^v.*/false/')" >> $GITHUB_OUTPUT
echo "manifest=$(cat src/main/resources/base/ayab/firmware/manifest.txt)" >> $GITHUB_OUTPUT
- name: Get firmware version matching manifest
run: |
echo ${{ steps.vars.outputs.manifest }}
available=$(curl -s https://github.com/AllYarnsAreBeautiful/ayab-firmware/releases | grep -oE '/tag/[^\"]+' | sed -E 's/\/tag\///')
echo $available
match=$(for x in $available; do echo $x; done | grep ^${{ steps.vars.outputs.manifest }} | sort -r | head -1)
echo $match
if [[ $match ]]
then
cd src/main/resources/base/ayab/firmware/
wget https://github.com/AllYarnsAreBeautiful/ayab-firmware/releases/download/$match/ayab_monolithic_uno.hex
else
echo "Error: could not find firmware release matching manifest"
exit 1
fi
- name: Cache firmware
uses: actions/cache/save@v3
with:
path: src/main/resources/base/ayab/firmware/*.hex
key: firmware-${{ steps.vars.outputs.manifest }}
- name: Set PACKAGE_VERSION
run: |
echo ${{ steps.vars.outputs.tag }} > src/main/resources/base/ayab/package_version
# remove suffix from semver tag, as fbs does not support them
version_without_suffix=$(echo ${{ steps.vars.outputs.tag }} | sed -E 's/^v?([0-9]+\.[0-9]+\.[0-9]+).*$/\1/')
sed -i -e s/PACKAGE_VERSION/$version_without_suffix/ src/build/settings/base.json
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
sudo apt update
sudo apt-get install -y avrdude libasound2-dev
- name: Restore pip cache
id: pip-cache
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.build.txt') }}
- name: Install Python modules
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade setuptools
python -m pip install -r requirements.build.txt
- name: Cache Python modules
if: steps.pip-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.build.txt') }}
- name: Use cached gui files (1)
id: gui1-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/*_gui.py
key: gui1-${{ hashFiles('src/main/python/main/ayab/*_gui.ui') }}
- name: Use cached gui files (2)
id: gui2-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/engine/*_gui.py
key: gui2-${{ hashFiles('src/main/python/main/ayab/engine/*_gui.ui') }}
- name: Use cached logo
id: logo-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/ayab_logo_rc.py
key: logo-${{ hashFiles('src/main/python/main/ayab/ayab_logo_rc.qrc') }}
- name: Use cached graphics
id: e-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/engine/*_rc.py
key: e-${{ hashFiles('src/main/python/main/ayab/engine/*_rc.qrc') }}
- name: Use cached translation files
id: qm-cache
uses: actions/cache@v3
with:
path: src/main/resources/base/ayab/translations/*.qm
key: qm-${{ hashFiles('src/main/resources/base/ayab/translations/ayab-translation-master.tsv') }}
- name: Use cached `base.json` file
id: base-cache
uses: actions/cache@v3
with:
path: src/build/settings/base.json
key: base-${{ steps.vars.outputs.tag }}
- name: Convert UI and translation files
if: ${{ (steps.gui1-cache.outputs.cache-hit != 'true') ||
(steps.gui2-cache.outputs.cache-hit != 'true') ||
(steps.logo-cache.outputs.cache-hit != 'true') ||
(steps.e-cache.outputs.cache-hit != 'true') ||
(steps.qm-cache.outputs.cache-hit != 'true') }}
run: |
sudo apt install -y qt6-base-dev qt6-tools-dev-tools qt6-l10n-tools
PATH=/usr/lib/qt6/bin:$PATH bash setup-environment.ps1
- name: Cache gui files (1)
if: ${{ (steps.gui1-cache.outputs.cache-hit != 'true') }}
uses: actions/cache/save@v3
with:
path: src/main/python/main/ayab/*_gui.py
key: gui1-${{ hashFiles('src/main/python/main/ayab/*_gui.ui') }}
- name: Cache gui files (2)
if: ${{ (steps.gui2-cache.outputs.cache-hit != 'true') }}
uses: actions/cache/save@v3
with:
path: src/main/python/main/ayab/*_gui.py
key: gui2-${{ hashFiles('src/main/python/main/ayab/engine/*_gui.ui') }}
- name: Cache logo
if: ${{ (steps.logo-cache.outputs.cache-hit != 'true') }}
uses: actions/cache/save@v3
with:
path: src/main/python/main/ayab/ayab_logo_rc.py
key: logo-${{ hashFiles('src/main/python/main/ayab/ayab_logo_rc.qrc') }}
- name: Cache graphics
if: ${{ (steps.e-cache.outputs.cache-hit != 'true') }}
uses: actions/cache/save@v3
with:
path: src/main/python/main/ayab/engine/*_rc.py
key: e-${{ hashFiles('src/main/python/main/ayab/engine/*_rc.qrc') }}
- name: Cache translation files
if: ${{ (steps.qm-cache.outputs.cache-hit != 'true') }}
uses: actions/cache/save@v3
with:
path: src/main/resources/base/ayab/translations/*.qm
key: qm-${{ hashFiles('src/main/resources/base/ayab/translations/ayab-translation-master.tsv') }}
- name: Cache `base.json` file
if: ${{ (steps.base-cache.outputs.cache-hit != 'true') }}
uses: actions/cache/save@v3
with:
path: src/build/settings/base.json
key: base-${{ steps.vars.outputs.tag }}
deploy:
name: Create and deploy source code documentation
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install dependencies for doxygen
run: |
sudo apt-get install doxygen graphviz -y
- name: Create .nojekyll so that filenames with underscores work on Github Pages
run: |
mkdir -p docs/html
touch docs/html/.nojekyll
- name: Deploy to pages
uses: DenverCoder1/doxygen-github-pages-action@v1.3.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages
folder: docs/html
config_file: Doxyfile
build-windows:
name: Create and upload Windows release
needs: setup
runs-on: windows-latest
strategy:
matrix:
python-version: [3.11]
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: recursive
- name: Set variables
id: vars
shell: bash
run: |
echo "sha-short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
echo "tag=$(git describe --tags)" >> $GITHUB_OUTPUT
echo "draft=$(git describe --tags | sed -e 's/^test.*/true/;s/^v.*/false/')" >> $GITHUB_OUTPUT
echo "manifest=$(cat src/main/resources/base/ayab/firmware/manifest.txt)" >> $GITHUB_OUTPUT
- name: Set up Python ${{ matrix.python-version }}
id: py
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
shell: pwsh
run: |
choco install patch
choco install vcredist-all # fixes dependency on msvcr100.dll
python -m pip install --upgrade pip
python -m pip install --upgrade setuptools
python -m pip install -r requirements.build.txt
python -m pip install -r windows-build\windows_build_requirements.txt
- name: Restore cached firmware
id: firmware-cache
uses: actions/cache@v3
with:
path: src/main/resources/base/ayab/firmware/*.hex
key: firmware-${{ steps.vars.outputs.manifest }}
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Restore cached gui files (1)
id: gui1-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/*_gui.py
key: gui1-${{ hashFiles('src/main/python/main/ayab/*_gui.ui') }}
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Restore cached gui files (2)
id: gui2-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/engine/*_gui.py
key: gui2-${{ hashFiles('src/main/python/main/ayab/engine/*_gui.ui') }}
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Restore cached logo
id: logo-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/ayab_logo_rc.py
key: logo-${{ hashFiles('src/main/python/main/ayab/ayab_logo_rc.qrc') }}
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Restore cached graphics
id: e-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/engine/*_rc.py
key: e-${{ hashFiles('src/main/python/main/ayab/engine/*_rc.qrc') }}
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Restore cached translation files
id: qm-cache
uses: actions/cache@v3
with:
path: src/main/resources/base/ayab/translations/*.qm
key: qm-${{ hashFiles('src/main/resources/base/ayab/translations/ayab-translation-master.tsv') }}
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Restore cached `base.json` file
id: base-cache
uses: actions/cache@v3
with:
path: src/build/settings/base.json
key: base-${{ steps.vars.outputs.tag }}
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Remove unneeded files
shell: bash
run: |
rm src/main/python/main/ayab/*_gui.ui
rm src/main/python/main/ayab/ayab_logo_rc.qrc
- name: Change line endings to CRLF
shell: bash
run: |
for f in $(ls /main/python/main/ayab/*_gui.py)
do
unix2dos $f
done
for f in $(ls /main/python/main/ayab/engine/*_gui.py)
do
unix2dos $f
done
- name: Check cached files
shell: bash
run: |
pwd
ls -l src/main/python/main/ayab/
ls -l src/main/resources/base/ayab/translations/
- name: Build app
shell: pwsh
run: python -m fbs freeze --debug
- name: Create installer
shell: pwsh
run: |
python -m fbs installer
Move-Item -Path target\AYABSetup.exe -Destination target\AYAB-${{ steps.vars.outputs.tag }}.exe
- name: Upload asset
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ steps.vars.outputs.tag }}
commit: ${{ steps.vars.outputs.sha }}
body: "" # release message, alternative to body_path
# body_path: release_text.md # uncomment if not used
draft: ${{ steps.vars.outputs.draft }}
prerelease: false
allowUpdates: true
artifacts: target/AYAB-${{ steps.vars.outputs.tag }}.exe
artifactContentType: application/exe
replacesArtifacts: true
- uses: actions/upload-artifact@v3
with:
name: AYAB-${{ steps.vars.outputs.tag }}.exe
path: target/AYAB-${{ steps.vars.outputs.tag }}.exe
build-macos:
name: Create and upload Mac OSX release
needs: setup
runs-on: macos-14
strategy:
matrix:
python-version: [3.11]
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: recursive
- name: Set variables
id: vars
shell: bash
run: |
echo "sha-short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
echo "tag=$(git describe --tags)" >> $GITHUB_OUTPUT
echo "manifest=$(cat src/main/resources/base/ayab/firmware/manifest.txt)" >> $GITHUB_OUTPUT
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
shell: zsh {0}
run: |
brew install avrdude
brew install qt
python -m pip install delocate
python -m pip download --only-binary=:all: --platform macosx_10_09_x86_64 numpy==1.26.4
python -m pip download --only-binary=:all: --platform macosx_11_0_arm64 numpy==1.26.4
mkdir tmp-wheel/
delocate-fuse numpy*arm* numpy*x86* -w tmp-wheel/
python -m pip download --only-binary=:all: --platform macosx_10_10_x86_64 Pillow==10.0.0
python -m pip download --only-binary=:all: --platform macosx_11_0_arm64 Pillow==10.0.0
delocate-fuse Pillow*arm* Pillow*x86* -w tmp-wheel/
python -m pip install tmp-wheel/*.whl
python -m pip install --no-binary charset_normalizer -r requirements.build.txt
- name: Restore cached firmware
id: firmware-cache
uses: actions/cache@v3
with:
path: src/main/resources/base/ayab/firmware/*.hex
key: firmware-${{ steps.vars.outputs.manifest }}
fail-on-cache-miss: true
- name: Restore cached gui files (1)
id: gui1-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/*_gui.py
key: gui1-${{ hashFiles('src/main/python/main/ayab/*_gui.ui') }}
fail-on-cache-miss: true
- name: Restore cached gui files (2)
id: gui2-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/engine/*_gui.py
key: gui2-${{ hashFiles('src/main/python/main/ayab/engine/*_gui.ui') }}
fail-on-cache-miss: true
- name: Restore cached logo
id: logo-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/ayab_logo_rc.py
key: logo-${{ hashFiles('src/main/python/main/ayab/ayab_logo_rc.qrc') }}
fail-on-cache-miss: true
- name: Restore cached graphics
id: e-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/engine/*_rc.py
key: e-${{ hashFiles('src/main/python/main/ayab/engine/*_rc.qrc') }}
fail-on-cache-miss: true
- name: Restore cached translation files
id: qm-cache
uses: actions/cache@v3
with:
path: src/main/resources/base/ayab/translations/*.qm
key: qm-${{ hashFiles('src/main/resources/base/ayab/translations/ayab-translation-master.tsv') }}
fail-on-cache-miss: true
- name: Restore cached `base.json` file
id: base-cache
uses: actions/cache@v3
with:
path: src/build/settings/base.json
key: base-${{ steps.vars.outputs.tag }}
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Remove unneeded files
run: |
rm src/main/python/main/ayab/*_gui.ui
rm src/main/python/main/ayab/ayab_logo_rc.qrc
- name: Check cached files
run: |
pwd
ls -l src/main/python/main/ayab/
ls -l src/main/resources/base/ayab/translations/
- name: Build app
run: |
python -m fbs freeze --debug
codesign -s - --force --all-architectures --timestamp --deep ./target/AYAB-mac.app
- name: Create installer
run: |
python -m fbs installer
codesign -s - --force --all-architectures --timestamp --deep ./target/AYAB.dmg
mv target/AYAB.dmg target/AYAB-${{ steps.vars.outputs.tag }}.dmg
- name: Upload asset
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ steps.vars.outputs.tag }}
commit: ${{ steps.vars.outputs.sha }}
body: "" # release message, alternative to body_path
# body_path: release_text.md # uncomment if not used
draft: ${{ steps.vars.outputs.draft }}
prerelease: false
allowUpdates: true
artifacts: target/AYAB-${{ steps.vars.outputs.tag }}.dmg
artifactContentType: application/dmg
replacesArtifacts: true
- uses: actions/upload-artifact@v3
with:
name: AYAB-${{ steps.vars.outputs.tag }}.dmg
path: target/AYAB-${{ steps.vars.outputs.tag }}.dmg
# see https://github.com/AppImage/AppImageKit/wiki/Bundling-Python-apps
build-appimage:
name: Create and upload Linux AppImage release
needs: setup
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: [3.11]
steps:
- name: Checkout repo into AppDir
uses: actions/checkout@v3
with:
path: git
submodules: recursive
fetch-depth: 0
- name: Set variables
id: vars
run: |
cd git
echo "sha-short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
echo "tag=$(git describe --tags)" >> $GITHUB_OUTPUT
echo "python=python${{matrix.python-version}}" >> $GITHUB_OUTPUT
echo "manifest=$(cat src/main/resources/base/ayab/firmware/manifest.txt)" >> $GITHUB_OUTPUT
echo "python-appimage=python${{matrix.python-version}}.8-cp311-cp311-manylinux_2_28_x86_64.AppImage" >> $GITHUB_OUTPUT
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Download AppImage of Python designed for manylinux
run: wget -c https://github.com/niess/python-appimage/releases/download/${{steps.vars.outputs.python}}/${{steps.vars.outputs.python-appimage}}
- name: Extract the AppImage
run: |
chmod +x ${{steps.vars.outputs.python-appimage}}
./${{steps.vars.outputs.python-appimage}} --appimage-extract
- name: Move repo
run: mv git/* squashfs-root
- name: Install dependencies
run: |
cd squashfs-root
sudo apt-get install -y avrdude libasound2-dev
./AppRun -m pip install --upgrade pip
./AppRun -m pip install --upgrade setuptools
# hack to fix setup.py script with faulty include
./AppRun -m pip install --global-option=build_ext --global-option="-I$(pwd)/opt/${{steps.vars.outputs.python}}/include/${{steps.vars.outputs.python}}" simpleaudio
./AppRun -m pip install -r requirements.build.txt
- name: Add AppDir subdirectories to PATH
run: |
echo "usr/bin" >> $GITHUB_PATH
echo "opt/${{steps.vars.outputs.python}}/bin" >> $GITHUB_PATH
- name: Restore cached firmware
id: firmware-cache
uses: actions/cache@v3
with:
path: src/main/resources/base/ayab/firmware/*.hex
key: firmware-${{ steps.vars.outputs.manifest }}
fail-on-cache-miss: true
- name: Restore cached gui files (1)
id: gui1-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/*_gui.py
key: gui1-${{ hashFiles('src/main/python/main/ayab/*_gui.ui') }}
fail-on-cache-miss: true
- name: Restore cached gui files (2)
id: gui2-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/engine/*_gui.py
key: gui2-${{ hashFiles('src/main/python/main/ayab/engine/*_gui.ui') }}
fail-on-cache-miss: true
- name: Restore cached logo
id: logo-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/ayab_logo_rc.py
key: logo-${{ hashFiles('src/main/python/main/ayab/ayab_logo_rc.qrc') }}
fail-on-cache-miss: true
- name: Restore cached graphics
id: e-cache
uses: actions/cache@v3
with:
path: src/main/python/main/ayab/engine/*_rc.py
key: e-${{ hashFiles('src/main/python/main/ayab/engine/*_rc.qrc') }}
fail-on-cache-miss: true
- name: Restore cached translation files
id: qm-cache
uses: actions/cache@v3
with:
path: src/main/resources/base/ayab/translations/*.qm
key: qm-${{ hashFiles('src/main/resources/base/ayab/translations/ayab-translation-master.tsv') }}
fail-on-cache-miss: true
- name: Restore cached `base.json` file
id: base-cache
uses: actions/cache@v3
with:
path: src/build/settings/base.json
key: base-${{ steps.vars.outputs.tag }}
enableCrossOsArchive: true
fail-on-cache-miss: true
- name: Move cached files
run: |
mv src/main/resources/base/ayab/firmware/*.hex squashfs-root/src/main/resources/base/ayab/firmware/
mv src/main/python/main/ayab/*_gui.py squashfs-root/src/main/python/main/ayab/
mv src/main/python/main/ayab/engine/*_gui.py squashfs-root/src/main/python/main/ayab/engine/
mv src/main/python/main/ayab/ayab_logo_rc.py squashfs-root/src/main/python/main/ayab/
mv src/main/python/main/ayab/engine/lowercase_e_rc.py squashfs-root/src/main/python/main/ayab/engine
mv src/main/python/main/ayab/engine/lowercase_e_reversed_rc.py squashfs-root/src/main/python/main/ayab/engine
mv src/main/resources/base/ayab/translations/*.qm squashfs-root/src/main/resources/base/ayab/translations/
mv src/build/settings/base.json squashfs-root/src/build/settings/base.json
- name: Remove unneeded files
run: |
rm squashfs-root/src/main/python/main/ayab/*_gui.ui
rm squashfs-root/src/main/python/main/ayab/ayab_logo_rc.qrc
rm squashfs-root/src/main/python/main/ayab/engine/lowercase_e_rc.qrc
rm squashfs-root/src/main/python/main/ayab/engine/lowercase_e_reversed_rc.qrc
- name: Check cached files
run: |
pwd
ls -l squashfs-root/src/main/python/main/ayab/
ls -l squashfs-root/src/main/resources/base/ayab/translations/
- name: Replace AppRun
run: |
cd squashfs-root
rm AppRun
cp linux-build/appimage/AppRun .
- name: Add icon
run: |
cd squashfs-root
rm -f *.png
rm -rf usr/share/icons/
cp linux-build/appimage/ayab.png ayab.png
mkdir -p usr/share/icons/hicolor/128x128/apps/
cp ayab.png usr/share/icons/hicolor/128x128/apps/
- name: Create desktop file
run: |
cd squashfs-root
rm -f python*.desktop
mkdir -p usr/share/applications/
rm -f usr/share/applications/*.desktop
cp linux-build/appimage/com.ayab_knitting.ayab.desktop com.ayab_knitting.ayab.desktop
cp com.ayab_knitting.ayab.desktop usr/share/applications/com.ayab_knitting.ayab.desktop
- name: Add metadata
run: |
cd squashfs-root
mkdir -p usr/share/metainfo/
rm -f usr/share/metainfo/*.appdata.xml
cp linux-build/appimage/ayab.appdata.xml usr/share/metainfo/
- name: Convert to AppImage
run: |
wget -c https://github.com/$(wget -q https://github.com/probonopd/go-appimage/releases/expanded_assets/continuous -O - | grep appimagetool-.*-x86_64.AppImage | head -n 1 | cut -d '"' -f 2)
chmod +x appimagetool-*-x86_64.AppImage
chmod 755 squashfs-root
sudo apt install appstream
VERSION=${{steps.vars.outputs.tag}} ./appimagetool-*-x86_64.AppImage squashfs-root/
sudo apt remove appstream
mv ayab-${{ steps.vars.outputs.tag }}-x86_64.AppImage AYAB-${{ steps.vars.outputs.tag }}-x86_64.AppImage
- name: Upload asset
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ steps.vars.outputs.tag }}
commit: ${{ steps.vars.outputs.sha }}
body: "" # release message, alternative to body_path
# body_path: release_text.md # uncomment if not used
draft: ${{ steps.vars.outputs.draft }}
prerelease: false
allowUpdates: true
artifacts: AYAB-${{ steps.vars.outputs.tag }}-x86_64.AppImage
artifactContentType: application/AppImage
replacesArtifacts: true
- uses: actions/upload-artifact@v3
with:
name: AYAB-${{ steps.vars.outputs.tag }}-x86_64.AppImage
path: AYAB-${{ steps.vars.outputs.tag }}-x86_64.AppImage