-
Notifications
You must be signed in to change notification settings - Fork 1
135 lines (117 loc) · 4.1 KB
/
main.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
on:
workflow_dispatch:
push:
branches:
- 'main'
pull_request:
branches:
- 'main'
defaults:
run:
shell: cmd
env:
SOURCE_DIR: ${{ github.workspace }}
QT_VERSION: 5.9.9
ARTIFACT: build-assets
name: Create Release
jobs:
# https://medium.com/@TomRvr/continuous-integration-for-a-qt-project-with-github-b19a33b39980
build:
name: Build
runs-on: windows-2019
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
submodules: recursive
- name: Install Qt
uses: jurplel/install-qt-action@v3
with:
version: ${{ env.QT_VERSION }}
host: windows
target: desktop
arch: win64_msvc2017_64
dir: ${{ runner.temp }}
setup-python: false
- name: Download JOM
uses: suisei-cn/actions-download-file@v1
with:
url: http://download.qt.io/official_releases/jom/jom.zip
target: ${{ runner.temp }}\
- name: Unzip JOM
working-directory: ${{ runner.temp }}
run: |
7z x jom.zip -ojom
- name: Create build directory
run: mkdir ${{ env.SOURCE_DIR }}\build\nifskope_converter
- name: Set up Visual Studio shell
uses: egor-tensin/vs-shell@v2
with:
arch: x64
- name: Build NifSkope
working-directory: ${{ env.SOURCE_DIR }}\build\nifskope_converter
run: |
qmake -r ${{ env.SOURCE_DIR }}\src\models-and-animations\nifskope_converter\NifSkope.pro
${{ runner.temp }}\jom\jom -j2
cd release
windeployqt --qmldir ${{ env.SOURCE_DIR }} NifSkope.exe --pdb --release --compiler-runtime
copy C:\Windows\System32\concrt140.dll .
copy C:\Windows\System32\vccorlib140.dll .
copy C:\Windows\System32\msvcp140.dll .
copy C:\Windows\System32\vcruntime140.dll .
- name: Save build artifact
uses: actions/upload-artifact@v3
with:
name: ${{ env.ARTIFACT }}
path: |
${{ env.SOURCE_DIR }}\build\nifskope_converter\release\
${{ env.SOURCE_DIR }}\src\models-and-animations\elric\
${{ env.SOURCE_DIR }}\src\convert.ps1
${{ env.SOURCE_DIR }}\convert.bat
${{ env.SOURCE_DIR }}\README.md
${{ env.SOURCE_DIR }}\images\
release:
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
name: Release
runs-on: ubuntu-latest
needs: build
steps:
- name: Download Artifacts
id: download
uses: actions/download-artifact@v3
with:
name: ${{ env.ARTIFACT }}
path: ${{ runner.temp }}/artifacts
- name: Zip Folder
shell: bash
working-directory: ${{ steps.download.outputs.download-path }}
run: |
mkdir ${{ runner.temp }}/assets
zip -r ${{ runner.temp }}/assets/${{ env.ARTIFACT }}.zip .
# - name: Conventional Changelog Action
# uses: TriPSs/conventional-changelog-action@v3
# with:
# github-token: ${{ secrets.github_token }}
- name: Create Release
id: create-release
uses: actions/create-release@v1
# if: ${{ steps.changelog.outputs.skipped == 'false' }}
env:
GITHUB_TOKEN: ${{ secrets.github_token }}
with:
# tag_name: ${{ steps.changelog.outputs.tag }}
# release_name: ${{ steps.changelog.outputs.tag }}
# body: ${{ steps.changelog.outputs.clean_changelog }}
tag_name: v${{ github.run_number }}
release_name: v${{ github.run_number }}
draft: false
prerelease: true
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create-release.outputs.upload_url }}
asset_path: ${{ runner.temp }}/assets/${{ env.ARTIFACT }}.zip
asset_name: v${{ github.run_number }}.zip
asset_content_type: application/zip