Remade apps settings saving on idle #312
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
name: Build Starc for Windows | |
env: | |
APP_VERSION: 0.6.2 | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
create: | |
tags: | |
- v* | |
workflow_dispatch: {} | |
jobs: | |
build_windows_64: | |
name: Build Windows 64 version | |
runs-on: windows-latest | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout Sources for push or create tag event | |
if: ${{ github.event_name != 'pull_request' }} | |
uses: actions/checkout@master | |
with: | |
token: ${{ secrets.ACTION_RUNNER }} | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Checkout Sources for pull request event | |
if: ${{ github.event_name == 'pull_request' }} | |
uses: actions/checkout@master | |
- name: Add info about dev build to the env | |
shell: bash | |
run: | | |
echo "DEV_BUILD=$(git rev-list `git rev-list --tags --no-walk --max-count=1`..HEAD --count)" >> $GITHUB_ENV | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: 5.15.2 | |
arch: win64_msvc2019_64 | |
target: desktop | |
setup-python: false | |
- name: Install dependencies | |
shell: bash | |
run: | | |
choco install openssl | |
- name: Configure MSVC | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: x64 | |
- name: Run QMake | |
shell: bash | |
run: | | |
cd src | |
qmake starc.pro CONFIG+=release DEFINES+="DEV_BUILD=$DEV_BUILD" | |
- name: Build | |
run: | | |
cd src | |
nmake | |
- name: Prepare installer folder | |
shell: bash | |
run: | | |
cd build/windows | |
./make-exe_64.sh ${{env.APP_VERSION}} | |
- name: Sign app executables | |
uses: skymatic/code-sign-action@v1 | |
with: | |
certificate: '${{ secrets.WINDOWS_CERTIFICATE }}' | |
password: '${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}' | |
description: 'Story Architect' | |
timestampUrl: 'http://timestamp.digicert.com' | |
folder: 'build/windows/files_64' | |
recursive: true | |
- name: Make installer | |
uses: joncloud/[email protected] | |
with: | |
arguments: "/V3" | |
script-file: "build/windows/starc_64.nsi" | |
- name: Sign installer | |
uses: skymatic/code-sign-action@v1 | |
with: | |
certificate: '${{ secrets.WINDOWS_CERTIFICATE }}' | |
password: '${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}' | |
description: 'Story Architect' | |
timestampUrl: 'http://timestamp.digicert.com' | |
folder: 'build/windows' | |
- name: Make archive with portable version | |
uses: vimtor/action-zip@v1 | |
with: | |
files: build/windows/files_64 | |
dest: build/windows/starc-64.zip | |
- name: Collect artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: windows_64 packages | |
path: | | |
build/windows/starc-setup-64.exe | |
build/windows/starc-64.zip | |
- name: Publish artifacts to the dev stream and notify clients | |
if: startsWith(github.ref, 'refs/tags/') != true | |
shell: pwsh | |
env: | |
STARC_API_KEY: ${{ secrets.STARC_API_KEY }} | |
BUILD_VERSION: ${{env.APP_VERSION}} dev ${{env.DEV_BUILD}} | |
run: | | |
$PublishForm = @{ | |
api_key = $env:STARC_API_KEY | |
name_for_file = 'starc-setup-64.exe' | |
file_bin = Get-Item -Path 'build\windows\starc-setup-64.exe' | |
} | |
Invoke-WebRequest -Uri 'https://starc.app/api/app/updates/publish' -Method Post -Form $PublishForm | |
$NotifyForm = @{ | |
api_key = $env:STARC_API_KEY | |
system = 'windows64' | |
version = $env:BUILD_VERSION | |
} | |
Invoke-WebRequest -Uri 'https://starc.app/api/app/updates/notify' -Method Post -Form $NotifyForm | |
- name: Publish artifacts to the GitHub releases | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: | | |
build/windows/starc-setup-64.exe | |
build/windows/starc-64.zip | |
- name: Notify clients that stable release published | |
if: startsWith(github.ref, 'refs/tags/') | |
shell: bash | |
run: | | |
curl -F "api_key=${{ secrets.STARC_API_KEY }}" -F "system=windows64" -F "version=${{env.APP_VERSION}}" https://starc.app/api/app/updates/notify | |
build_windows_32: | |
name: Build Windows 32 version | |
runs-on: windows-latest | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout Sources for push or create tag event | |
if: ${{ github.event_name != 'pull_request' }} | |
uses: actions/checkout@master | |
with: | |
token: ${{ secrets.ACTION_RUNNER }} | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Checkout Sources for pull request event | |
if: ${{ github.event_name == 'pull_request' }} | |
uses: actions/checkout@master | |
- name: Add info about dev build to the env | |
shell: bash | |
run: | | |
echo "DEV_BUILD=$(git rev-list `git rev-list --tags --no-walk --max-count=1`..HEAD --count)" >> $GITHUB_ENV | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v3 | |
with: | |
version: 5.15.2 | |
arch: win32_msvc2019 | |
target: desktop | |
setup-python: false | |
- name: Install dependencies | |
shell: bash | |
run: | | |
choco install openssl --version=1.1.1.2100 --forcex86 | |
- name: Configure MSVC | |
uses: ilammy/msvc-dev-cmd@v1 | |
with: | |
arch: x86 | |
- name: Run QMake | |
shell: bash | |
run: | | |
cd src | |
qmake starc.pro CONFIG+=release DEFINES+="DEV_BUILD=$DEV_BUILD" | |
- name: Build | |
run: | | |
cd src | |
nmake | |
- name: Prepare installer folder | |
shell: bash | |
run: | | |
cd build/windows | |
./make-exe_32.sh ${{env.APP_VERSION}} | |
- name: Sign app executables | |
uses: skymatic/code-sign-action@v1 | |
with: | |
certificate: '${{ secrets.WINDOWS_CERTIFICATE }}' | |
password: '${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}' | |
description: 'Story Architect' | |
timestampUrl: 'http://timestamp.digicert.com' | |
folder: 'build/windows/files_32' | |
recursive: true | |
- name: Make installer | |
uses: joncloud/[email protected] | |
with: | |
arguments: "/V3" | |
script-file: "build/windows/starc_32.nsi" | |
- name: Sign installer | |
uses: skymatic/code-sign-action@v1 | |
with: | |
certificate: '${{ secrets.WINDOWS_CERTIFICATE }}' | |
password: '${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }}' | |
description: 'Story Architect' | |
timestampUrl: 'http://timestamp.digicert.com' | |
folder: 'build/windows' | |
- name: Make archive with portable version | |
uses: vimtor/action-zip@v1 | |
with: | |
files: build/windows/files_32 | |
dest: build/windows/starc-32.zip | |
- name: Collect artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: windows_32 packages | |
path: | | |
build/windows/starc-setup-32.exe | |
build/windows/starc-32.zip | |
- name: Publish artifacts to the dev stream and notify clients | |
if: startsWith(github.ref, 'refs/tags/') != true | |
shell: pwsh | |
env: | |
STARC_API_KEY: ${{ secrets.STARC_API_KEY }} | |
BUILD_VERSION: ${{env.APP_VERSION}} dev ${{env.DEV_BUILD}} | |
run: | | |
$PublishForm = @{ | |
api_key = $env:STARC_API_KEY | |
name_for_file = 'starc-setup-32.exe' | |
file_bin = Get-Item -Path 'build\windows\starc-setup-32.exe' | |
} | |
Invoke-WebRequest -Uri 'https://starc.app/api/app/updates/publish' -Method Post -Form $PublishForm | |
$NotifyForm = @{ | |
api_key = $env:STARC_API_KEY | |
system = 'windows32' | |
version = $env:BUILD_VERSION | |
} | |
Invoke-WebRequest -Uri 'https://starc.app/api/app/updates/notify' -Method Post -Form $NotifyForm | |
- name: Publish artifacts to GitHub releases | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: | | |
build/windows/starc-setup-32.exe | |
build/windows/starc-32.zip | |
- name: Notify clients that stable release published | |
if: startsWith(github.ref, 'refs/tags/') | |
shell: bash | |
run: | | |
curl -F "api_key=${{ secrets.STARC_API_KEY }}" -F "system=windows32" -F "version=${{env.APP_VERSION}}" https://starc.app/api/app/updates/notify |