test
Some checks failed
/ update (push) Failing after 0s

This commit is contained in:
Lilith Ashley Nyx Arson 🔥 2024-10-05 23:12:07 +02:00
commit d4f62ef097
3 changed files with 118 additions and 0 deletions

View file

@ -0,0 +1,34 @@
on:
workflow_dispatch:
push:
schedule:
- cron: "0 6 * * *"
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
path: extras
- uses: actions/checkout@v3
with:
repository: ashley/jami-client-qt
path: jami
- name: Make archives
run: |
- name: Get current date
id: date
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- uses: actions/forgejo-release@v1
with:
token: ${{ github.token }}
direction: upload
release-dir: dist
override: true
tag: nightly-${{ steps.date.outputs.date }}

14
CMakeLists.txt Normal file
View file

@ -0,0 +1,14 @@
#ICON \"path/to/your/icon.svg\"
#DIR_ICON \"path/to/your/diricon.png\"
INSTALL(CODE
"include(../appimage.cmake)
make_appimage(
EXE \"${JAMI_OUTPUT_DIRECTORY_RELEASE}/bin/${PROJECT_NAME}\"
NAME \"Jami\"
OUTPUT_NAME \"dist/Jami.AppImage\"
ASSETS \"${JAMI_OUTPUT_DIRECTORY_RELEASE}\")"
COMPONENT Runtime
)

70
appimage.cmake Normal file
View file

@ -0,0 +1,70 @@
function(make_appimage)
set(optional)
set(args EXE NAME DIR_ICON ICON OUTPUT_NAME)
set(list_args ASSETS)
cmake_parse_arguments(
PARSE_ARGV 0
ARGS
"${optional}"
"${args}"
"${list_args}"
)
if(${ARGS_UNPARSED_ARGUMENTS})
message(WARNING "Unparsed arguments: ${ARGS_UNPARSED_ARGUMENTS}")
endif()
# download AppImageTool if needed (TODO: non-x86 build machine?)
SET(AIT_PATH "${CMAKE_BINARY_DIR}/AppImageTool.AppImage" CACHE INTERNAL "")
if (NOT EXISTS "${AIT_PATH}")
file(DOWNLOAD https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage "${AIT_PATH}")
execute_process(COMMAND chmod +x ${AIT_PATH})
endif()
# make the AppDir
set(APPDIR "${CMAKE_BINARY_DIR}/AppDir")
file(REMOVE_RECURSE "${APPDIR}") # remove if leftover
file(MAKE_DIRECTORY "${APPDIR}")
# copy executable to appdir
file(COPY "${ARGS_EXE}" DESTINATION "${APPDIR}" FOLLOW_SYMLINK_CHAIN)
get_filename_component(EXE_NAME "${ARGS_EXE}" NAME)
# create the script that will launch the AppImage
file(WRITE "${APPDIR}/AppRun"
"#!/bin/sh
cd \"$(dirname \"$0\")\";
./${EXE_NAME} $@"
)
execute_process(COMMAND chmod +x "${APPDIR}/AppRun")
# copy assets to appdir
file(COPY ${ARGS_ASSETS} DESTINATION "${APPDIR}")
# copy icon thumbnail
file(COPY ${ARGS_DIR_ICON} DESTINATION "${APPDIR}")
get_filename_component(THUMB_NAME "${ARGS_DIR_ICON}" NAME)
file(RENAME "${APPDIR}/${THUMB_NAME}" "${APPDIR}/.DirIcon")
# copy icon highres
file(COPY ${ARGS_ICON} DESTINATION "${APPDIR}")
get_filename_component(ICON_NAME "${ARGS_ICON}" NAME)
get_filename_component(ICON_EXT "${ARGS_ICON}" EXT)
file(RENAME "${APPDIR}/${ICON_NAME}" "${APPDIR}/${ARGS_NAME}${ICON_EXT}")
# Create the .desktop file
file(WRITE "${APPDIR}/${ARGS_NAME}.desktop"
"[Desktop Entry]
Type=Application
Name=${ARGS_NAME}
Icon=${ARGS_NAME}
Categories=X-None;"
)
# Invoke AppImageTool
execute_process(COMMAND ${AIT_PATH} ${APPDIR} ${ARGS_OUTPUT_NAME})
file(REMOVE_RECURSE "${APPDIR}")
endfunction()