Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workflow variables #20

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
41 changes: 23 additions & 18 deletions .github/workflows/main.yml
Expand Up @@ -19,16 +19,17 @@ on:
type: boolean
env:
pkgname: tuningTrainer
IDENTITY_NAME: ${{ secrets.IDENTITY_NAME }}

jobs:
build:
strategy:
matrix:
include:
- { name: "windows", os: windows-latest, flags: "", shell: 'msys2 {0}', deps-prefix: "/opt/deps", aqt-os: "windows", aqt-arch: "win64_mingw", aqt-prefix: "/opt/Qt", aqt-subdir: "mingw_64", qt-version: '6.4.2', msystem: 'UCRT64' }
- { name: "windows", os: windows-latest, flags: "", shell: 'msys2 {0}', deps-prefix: "/opt/deps", aqt-os: "windows", aqt-arch: "win64_mingw", aqt-prefix: "/opt/Qt", aqt-subdir: "mingw_64", qt-version: '6.5.0', msystem: 'UCRT64' }
- { name: "windows-legacy", os: windows-latest, flags: "", shell: 'msys2 {0}', deps-prefix: "/opt/deps", aqt-os: "windows", aqt-arch: "win64_mingw81", aqt-prefix: "/opt/Qt", aqt-subdir: "mingw81_64", qt-version: '5.15.2', msystem: 'MINGW64' }
- { name: "linux", os: ubuntu-latest, flags: "", shell: 'bash', deps-prefix: "/home/runner/deps", aqt-os: "linux", aqt-arch: "gcc_64", aqt-prefix: "/home/runner/Qt", aqt-subdir: "gcc_64", qt-version: '6.4.2'}
- { name: "macos-universal", os: macos-11, flags: "-DCMAKE_OSX_ARCHITECTURES=\"x86_64;arm64\"", shell: 'bash', deps-prefix: "/Users/runner/deps", aqt-os: "mac", aqt-arch: "", aqt-prefix: "/Users/runner/Qt", aqt-subdir: "macos", qt-version: '6.4.2'}
- { name: "linux", os: ubuntu-latest, flags: "", shell: 'bash', deps-prefix: "/home/runner/deps", aqt-os: "linux", aqt-arch: "gcc_64", aqt-prefix: "/home/runner/Qt", aqt-subdir: "gcc_64", qt-version: '6.5.0'}
- { name: "macos-universal", os: macos-11, flags: "-DCMAKE_OSX_ARCHITECTURES=\"x86_64;arm64\"", shell: 'bash', deps-prefix: "/Users/runner/deps", aqt-os: "mac", aqt-arch: "", aqt-prefix: "/Users/runner/Qt", aqt-subdir: "macos", qt-version: '6.5.0'}
- { name: "macos-legacy", os: macos-11, flags: "-DCMAKE_OSX_DEPLOYMENT_TARGET=\"10.12\"", shell: 'bash', deps-prefix: "/Users/runner/deps", aqt-os: "mac", aqt-arch: "", aqt-prefix: "/Users/runner/Qt", aqt-subdir: "clang_64", qt-version: '5.12.12' }
runs-on: ${{matrix.os}}
defaults:
Expand All @@ -45,7 +46,6 @@ jobs:
run: |
CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12
KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
echo "IDENTITY_NAME=donarturo11.github.io" >> $GITHUB_ENV
echo -n "$P12_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH
security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH
security set-keychain-settings -lut 21600 $KEYCHAIN_PATH
Expand Down Expand Up @@ -97,6 +97,7 @@ jobs:
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad
sudo apt-get install -y libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 \
libxcb-cursor0 libxcb-cursor-dev \
libxcb-keysyms1-dev libxcb-randr0 \
libxcb-render-util0 libxcb-shape0

Expand Down Expand Up @@ -138,6 +139,11 @@ jobs:
- name: Checkout Repo
uses: actions/checkout@v3

- name: Prepare Packages names
run: |
PACKAGE_NAME=${{env.pkgname}}-${{matrix.name}}
echo "PACKAGE_NAME=$PACKAGE_NAME" >> ${GITHUB_ENV}

- name: Prepare workdir (UNIX)
if: ${{runner.os != 'Windows'}}
run: |
Expand All @@ -161,11 +167,10 @@ jobs:
- name: Prepare macOS temp disk
if: ${{runner.os == 'macOS'}}
run: |
export DMGNAME="${{env.pkgname}}-${{matrix.name}}"
export TEMP_DMGFILE=${{env.pkgname}}-temp.dmg
hdiutil create -size 700m -fs HFS+ -volname "${DMGNAME}" "${TEMP_DMGFILE}"
export TEMP_DMGFILE=temp.dmg
hdiutil create -size 700m -fs HFS+ -volname "${PACKAGE_NAME}" "${TEMP_DMGFILE}"
hdiutil attach "${TEMP_DMGFILE}"
TEMP_DMGPOINT="/Volumes/${DMGNAME}"
TEMP_DMGPOINT="/Volumes/${PACKAGE_NAME}"
echo "TEMP_DMGNAME=\"${TEMP_DMGNAME}\"" >> $GITHUB_ENV
echo "TEMP_DMGFILE=\"${TEMP_DMGFILE}\"" >> $GITHUB_ENV
echo "TEMP_DMGPOINT=\"${TEMP_DMGPOINT}\"" >> $GITHUB_ENV
Expand Down Expand Up @@ -208,31 +213,31 @@ jobs:
- name: Create MacOS Package
if: ${{runner.os == 'macOS'}}
run: |
DESTINATION_DIR=${{env.pkgname}}-${{matrix.name}}
DIST_DMG=${{env.pkgname}}-${{matrix.name}}.dmg
DESTINATION_DIR=${PACKAGE_NAME}
DIST_DMG=${PACKAGE_NAME}.dmg
mkdir ${DESTINATION_DIR} || echo "::warning:: ${DESTINATION_DIR} already exists"
${{matrix.aqt-prefix}}/${{matrix.qt-version}}/${{matrix.aqt-subdir}}/bin/macdeployqt \
"${{env.APPDIR}}"
find ${{env.DEPSPATH}} -name "*.dylib" -exec cp {} "${{env.APPDIR}}"/Contents/Frameworks \;
codesign --verbose --strict --continue --timestamp --force --deep -s donarturo11.github.io "${{env.APPDIR}}"
codesign --verbose --strict --continue --timestamp --force --deep -s ${IDENTITY_NAME} "${{env.APPDIR}}"
ln -s /Applications/ "${{ env.TEMP_DMGPOINT }}"/Applications
hdiutil detach "${{ env.TEMP_DMGPOINT }}"
hdiutil convert "${{env.TEMP_DMGFILE}}" -format UDBZ \
hdiutil convert "${{ env.TEMP_DMGFILE }}" -format UDBZ \
-o ${DESTINATION_DIR}/${DIST_DMG}
shasum -a 256 ${DESTINATION_DIR}/${DIST_DMG}

- name: Create Windows Package
if: ${{runner.os == 'Windows'}}
run: |
export ARTIFACT_DIR=${{env.WORKDIR}}/${{env.pkgname}}-${{matrix.name}}
export ARTIFACT_DIR=${{env.WORKDIR}}/${PACKAGE_NAME}
cp -v ${{env.DEPSPATH}}/bin/*.dll ${{env.APPDIR}}/
${{matrix.aqt-prefix}}/${{matrix.qt-version}}/${{matrix.aqt-subdir}}/bin/windeployqt.exe ${{env.APPDIR}}/
mkdir $ARTIFACT_DIR || echo "::warning::${ARTIFACT_DIR} already exists"
cd $ARTIFACT_DIR
cpack --config ${{env.WORKDIR}}/build/CPackConfig.cmake -G NSIS -V
mv ${{env.pkgname}}*.exe ${{env.pkgname}}-${{matrix.name}}-Installer.exe
mv ${{env.pkgname}}*.exe ${PACKAGE_NAME}-Installer.exe
cpack --config ${{env.WORKDIR}}/build/CPackConfig.cmake -G 7Z
mv ${{env.pkgname}}*.7z ${{env.pkgname}}-${{matrix.name}}-Portable.7z
mv ${{env.pkgname}}*.7z ${PACKAGE_NAME}-Portable.7z
rm -Rf _CPack_Packages/

- name: Create AppImage
Expand Down Expand Up @@ -269,10 +274,10 @@ jobs:
echo "::endgroup::"
echo "::group:: Creating AppImage"
./${LINUXDEPLOY} --appdir=${APPDIR} --output=appimage
mv ${{env.pkgname}}*.AppImage ${{env.pkgname}}-${{matrix.name}}.AppImage
export APPIMAGEDIR=${{github.workspace}}/${{env.pkgname}}-${{matrix.name}}
mv ${{env.pkgname}}*.AppImage ${PACKAGE_NAME}.AppImage
export APPIMAGEDIR=${{github.workspace}}/${PACKAGE_NAME}
mkdir $APPIMAGEDIR || echo "::warning::${APPIMAGEDIR} already exists"
cp ${{env.pkgname}}-${{matrix.name}}.AppImage ${{env.pkgname}}-${{matrix.name}}
cp ${PACKAGE_NAME}.AppImage ${PACKAGE_NAME}
echo "::endgroup::"

- name: Upload All Binaries
Expand Down
4 changes: 2 additions & 2 deletions CMakeLists.txt
Expand Up @@ -47,10 +47,10 @@ set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

include_directories(
${PROJECT_SOURCE_DIR}/include
${PROJECT_SOURCE_DIR}/src
)

FILE(GLOB_RECURSE HEADERS include/*.h)
FILE(GLOB_RECURSE HEADERS src/*.h)
FILE(GLOB_RECURSE SOURCES src/*.cpp)

set(RESOURCES resources/resources.qrc
Expand Down
21 changes: 17 additions & 4 deletions cmake/CPackConfig.cmake
Expand Up @@ -4,10 +4,13 @@ message("CMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}")
message("CMAKE_RUNTIME_OUTPUT_DIRECTORY=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VENDOR donarturo11)
set(CPACK_PACKAGE_DESCRIPTION "Simple program to training temperament systems")
set(CPACK_PACKAGE_FILE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_INSTALL_DIRECTORY .)
#set(CPACK_PACKAGE_ICON ${CMAKE_SOURCE_DIR}/desktop/AppIcon.png)
set(CPACK_INSTALLED_DIRECTORIES "${CMAKE_INSTALL_PREFIX};/")
set(CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME})
#set(CPACK_PACKAGE_ICON ${CMAKE_SOURCE_DIR}/desktop/AppIcon.ico)
#set(CPACK_INSTALLED_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME};/")
#set(CPACK_SET_DESTDIR "ON")
set(CPACK_PACKAGING_INSTALL_PREFIX "")
if (APPLE)
set(CPACK_GENERATOR Bundle)
set(CPACK_BUNDLE_NAME ${PROJECT_NAME})
Expand All @@ -19,9 +22,19 @@ if (APPLE)
#set(CPACK_BUNDLE_APPLE_CODESIGN_PARAMETER "-d -v -f")
elseif(WIN32)
set(CPACK_GENERATOR 7Z NSIS)
set(CPACK_INSTALLED_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME}/;/")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE")
set(CPACK_RESOURCE_FILE_README "${CMAKE_SOURCE_DIR}/README.md")
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-installer")
set(CPACK_ARCHIVE_FILE_NAME "${PROJECT_NAME}-Portable")
set(CPACK_NSIS_DISPLAY_NAME "${PROJECT_NAME}")
set(CPACK_NSIS_PACKAGE_NAME ${CPACK_NSIS_DISPLAY_NAME})
set(CPACK_NSIS_INSTALLED_ICON_NAME "${CMAKE_SOURCE_DIR}/desktop/AppIcon.ico")
set(CPACK_NSIS_URL_INFO_ABOUT "https://github.com/donarturo11/${PACKAGE_NAME}")
set(CPACK_NSIS_ADD_REMOVE ON)
set(CPACK_NSIS_INSTALLED_ICON_NAME ${PROJECT_NAME}/${PROJECT_NAME}.exe)

set(CPACK_NSIS_FILE_NAME "${PROJECT_NAME}-installer")
set(CPACK_NSIS_PACKAGE_NAME "${PROJECT_NAME}")
if(MINGW)
set(CPACK_NSIS_EXECUTABLE $ENV{MSYSTEM_PREFIX}/bin/makensis.exe)
endif()
Expand Down