123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- name: Packaging(Windows)
- on:
- push:
- branches:
- - master
- - fix*
- paths-ignore:
- - 'README.md'
- - 'LICENSE'
- pull_request:
- paths-ignore:
- - 'README.md'
- - 'LICENSE'
- workflow_dispatch:
- env:
- PRODUCT: flameshot
- jobs:
- windows-pack:
- name: VS 2019 ${{ matrix.config.arch }}-${{ matrix.type }}
- runs-on: windows-2019
- env:
- VCINSTALLDIR: C:/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/VC/
- Qt5_DIR: ${{ github.workspace }}\build\Qt\${{ matrix.qt_ver }}\${{ matrix.config.qt_arch_install }}\lib\cmake\Qt5\
- QTDIR: ${{ github.workspace }}\build\Qt\${{ matrix.qt_ver }}\${{ matrix.config.qt_arch_install }}\
- # 2022.06.15.1
- VCPKG_VERSION: cef0b3ec767df6e83806899fe9525f6cf8d7bc91
- VCPKG_PACKAGES: openssl-windows
- OPENSSL_ROOT_DIR: ${{ github.workspace }}\vcpkg\installed\${{ matrix.config.vcpkg_triplet }}\
- strategy:
- fail-fast: false
- matrix:
- qt_ver: [5.15.2]
- qt_target: [desktop]
- config:
- - {
- arch: x86,
- generator: "-G'Visual Studio 16 2019' -A Win32",
- vcpkg_triplet: x86-windows,
- qt_arch: win32_msvc2019,
- qt_arch_install: msvc2019,
- pak_arch: win32
- }
- - {
- arch: x64,
- generator: "-G'Visual Studio 16 2019' -A x64",
- vcpkg_triplet: x64-windows,
- qt_arch: win64_msvc2019_64,
- qt_arch_install: msvc2019_64,
- pak_arch: win64
- }
- type: [portable, installer]
- steps:
- - name: Checkout Source code
- if: github.event_name == 'push'
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- # ref: master
- - name: Checkout Source code
- if: github.event_name == 'pull_request'
- uses: actions/checkout@v4
- with:
- fetch-depth: 0
- ref: ${{ github.event.pull_request.head.sha }}
- - name: Set env & Print flameshot version
- shell: bash
- run: |
- last_committed_tag=$(git tag -l --sort=-v:refname | head -1)
- git_revno=$(git rev-list $(git describe --tags --abbrev=0)..HEAD --count)
- git_hash=$(git rev-parse --short HEAD)
- echo "=======FLAMESHOT VERSION========"
- echo ${last_committed_tag:1}
- echo "Details: ${last_committed_tag}+git${git_revno}.${git_hash}"
- echo "================================"
- # This will allow to build pre-preleases without git tag
- # echo "VERSION=${last_committed_tag:1}" >> $GITHUB_ENV
- echo "VERSION=$(cat CMakeLists.txt |grep 'set.*(.*FLAMESHOT_VERSION' | sed 's/[^0-9.]*//' |sed 's/)//g')" >> $GITHUB_ENV
- - name: Restore from cache and run vcpkg
- uses: lukka/run-vcpkg@v11
- with:
- vcpkgArguments: ${{env.VCPKG_PACKAGES}}
- vcpkgDirectory: '${{ github.workspace }}\vcpkg'
- appendedCacheKey: ${{ matrix.config.vcpkg_triplet }}
- vcpkgGitCommitId: ${{ env.VCPKG_VERSION }}
- vcpkgTriplet: ${{ matrix.config.vcpkg_triplet }}
- - name: Cache Qt
- id: cache-qt
- uses: actions/cache@v4
- with:
- path: ./build/Qt/${{ matrix.qt_ver }}/${{ matrix.config.qt_arch_install }}
- key: ${{ runner.os }}-QtCache/${{ matrix.qt_ver }}/${{ matrix.config.qt_arch }}
- - name: Install Qt
- uses: jurplel/install-qt-action@v3
- with:
- version: ${{ matrix.qt_ver }}
- target: ${{ matrix.qt_target }}
- arch: ${{ matrix.config.qt_arch }}
- dir: '${{ github.workspace }}/build/'
- modules: 'qtscript'
- cached: ${{ steps.cache-qt.outputs.cache-hit }}
- - name: Configure
- working-directory: build
- shell: pwsh
- run: |
- cmake .. ${{matrix.config.generator}} `
- -DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}\vcpkg\scripts\buildsystems\vcpkg.cmake" `
- -DENABLE_OPENSSL=ON `
- -DCMAKE_BUILD_TYPE=Release `
- -DRUN_IN_PLACE=${{ contains(matrix.type, 'portable') }}
- - name: Compile
- working-directory: build
- shell: pwsh
- run: cmake --build . --config Release
- - name: CPack
- working-directory: build
- shell: pwsh
- run: |
- # Chocolately made their own package called cpack and its first in the path. This is a hack since we are only using cmake's cpack, doesn't seem to be required after a CI update
- #Remove-Item C:\ProgramData\Chocolatey\bin\cpack.exe
- If ($env:TYPE -eq "installer")
- {
- cpack -G WIX -B "$env:GITHUB_WORKSPACE\build\Package"
- }
- ElseIf($env:TYPE -eq "portable")
- {
- cpack -G ZIP -B "$env:GITHUB_WORKSPACE\build\Package"
- }
- env:
- TYPE: ${{matrix.type}}
- - name: Package Clean
- shell: pwsh
- run: |
- # Remove-Item $env:GITHUB_WORKSPACE\build\Package\_CPack_Packages -Recurse
- New-Item -Path $env:GITHUB_WORKSPACE\build\Package\installer -ItemType Directory
- New-Item -Path $env:GITHUB_WORKSPACE\build\Package\portable -ItemType Directory
- - name: Package Prepare (installer)
- if: matrix.type == 'installer'
- shell: pwsh
- run: |
- Move-Item -Path $env:GITHUB_WORKSPACE/build/Package/Flameshot-*-${{ matrix.config.pak_arch }}.msi -Destination $env:GITHUB_WORKSPACE/build/Package/installer/Flameshot-$env:VERSION-${{ matrix.config.pak_arch }}.msi
- - name: Package Prepare (portable)
- if: matrix.type == 'portable'
- shell: pwsh
- run: |
- Move-Item -Path $env:GITHUB_WORKSPACE/build/Package/flameshot-*-${{ matrix.config.pak_arch }}.zip -Destination $env:GITHUB_WORKSPACE/build/Package/portable/flameshot-$env:VERSION-${{ matrix.config.pak_arch }}.zip
- - name: SHA256Sum of Windows installer(daily build)
- if: matrix.type == 'installer'
- shell: bash
- run: |
- sha256sum $GITHUB_WORKSPACE/build/Package/installer/Flameshot-${VERSION}-${{ matrix.config.pak_arch }}.msi
- sha256sum $GITHUB_WORKSPACE/build/Package/installer/Flameshot-${VERSION}-${{ matrix.config.pak_arch }}.msi > $GITHUB_WORKSPACE/build/Package/installer/Flameshot-${VERSION}-${{ matrix.config.pak_arch }}.msi.sha256sum
- python -m pip install -U -q requests
- echo "============Windows installer sha256sum download link============"
- echo $(python $GITHUB_WORKSPACE/scripts/upload_services/transferwee.py upload $GITHUB_WORKSPACE/build/Package/installer/Flameshot-${VERSION}-${{ matrix.config.pak_arch }}.msi.sha256sum)
- echo "=======no operation for you can see link in the log console====="
- - name: SHA256Sum of Windows portable(daily build)
- if: matrix.type == 'portable'
- shell: bash
- run: |
- sha256sum $GITHUB_WORKSPACE/build/Package/portable/flameshot-${VERSION}-${{ matrix.config.pak_arch }}.zip
- sha256sum $GITHUB_WORKSPACE/build/Package/portable/flameshot-${VERSION}-${{ matrix.config.pak_arch }}.zip > $GITHUB_WORKSPACE/build/Package/portable/flameshot-${VERSION}-${{ matrix.config.pak_arch }}.zip.sha256sum
- python -m pip install -U -q requests
- echo "===========Windows portable sha256sum download link============"
- echo $(python $GITHUB_WORKSPACE/scripts/upload_services/transferwee.py upload $GITHUB_WORKSPACE/build/Package/portable/flameshot-${VERSION}-${{ matrix.config.pak_arch }}.zip.sha256sum)
- echo "=====no operation for you can see link in the log console====="
- - name: Upload Windows installer(daily build)
- if: matrix.type == 'installer'
- shell: bash
- run: |
- python -m pip install -U -q requests
- echo "================Windows installer download link================"
- echo $(python $GITHUB_WORKSPACE/scripts/upload_services/transferwee.py upload $GITHUB_WORKSPACE/build/Package/installer/Flameshot-${VERSION}-${{ matrix.config.pak_arch }}.msi)
- echo "=====no operation for you can see link in the log console====="
- - name: Upload Windows portable(daily build)
- if: matrix.type == 'portable'
- shell: bash
- run: |
- python -m pip install -U -q requests
- echo "=================Windows portable download link================"
- echo $(python $GITHUB_WORKSPACE/scripts/upload_services/transferwee.py upload $GITHUB_WORKSPACE/build/Package/portable/flameshot-${VERSION}-${{ matrix.config.pak_arch }}.zip)
- echo "=====no operation for you can see link in the log console====="
- - name: Artifact Upload
- uses: actions/upload-artifact@v4
- with:
- name: Windows-${{ matrix.config.arch }}-${{ matrix.type }}-artifact
- path: ${{ github.workspace }}/build/Package/*
|