Skip to content

Commit e832f55

Browse files
ci: create release on push events (#73)
1 parent 505c90b commit e832f55

1 file changed

Lines changed: 92 additions & 1 deletion

File tree

.github/workflows/ci.yml

Lines changed: 92 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,33 @@ concurrency:
1818
cancel-in-progress: true
1919

2020
jobs:
21+
setup_release:
22+
name: Setup Release
23+
outputs:
24+
publish_release: ${{ steps.setup_release.outputs.publish_release }}
25+
release_body: ${{ steps.setup_release.outputs.release_body }}
26+
release_commit: ${{ steps.setup_release.outputs.release_commit }}
27+
release_generate_release_notes: ${{ steps.setup_release.outputs.release_generate_release_notes }}
28+
release_tag: ${{ steps.setup_release.outputs.release_tag }}
29+
release_version: ${{ steps.setup_release.outputs.release_version }}
30+
runs-on: ubuntu-latest
31+
steps:
32+
- name: Checkout
33+
uses: actions/checkout@v4
34+
35+
- name: Setup Release
36+
id: setup_release
37+
uses: LizardByte/setup-release-action@v2024.725.234618
38+
with:
39+
github_token: ${{ secrets.GITHUB_TOKEN }}
40+
2141
build:
2242
strategy:
2343
fail-fast: false
2444
matrix:
2545
os: [ubuntu-latest, macos-latest, windows-latest]
2646
name: Build
47+
needs: [setup_release]
2748
runs-on: ${{ matrix.os }}
2849
defaults:
2950
run:
@@ -150,10 +171,17 @@ jobs:
150171
echo "python-path=${python_path}" >> $GITHUB_OUTPUT
151172
152173
- name: Build
174+
env:
175+
BRANCH: ${{ github.head_ref || github.ref_name }}
176+
BUILD_VERSION: ${{ needs.setup_release.outputs.release_tag }}
177+
COMMIT: ${{ needs.setup_release.outputs.release_commit }}
153178
run: |
154179
mkdir -p build
155180
cd build
156-
cmake -DCMAKE_BUILD_TYPE:STRING=Debug -G Ninja ..
181+
cmake \
182+
-DCMAKE_BUILD_TYPE:STRING=Debug \
183+
-G Ninja \
184+
..
157185
ninja
158186
159187
- name: Run tests
@@ -185,6 +213,21 @@ jobs:
185213
name: coverage-${{ matrix.os }}
186214
path: build/coverage.xml
187215

216+
- name: Move Artifacts
217+
run: |
218+
mkdir -p artifacts
219+
if ["${{ runner.os }}" == "Windows"]; then
220+
mv -f ./build/tests/test_libdisplaydevice.exe artifacts/
221+
else
222+
mv -f ./build/tests/test_libdisplaydevice artifacts/
223+
fi
224+
225+
- name: Upload Artifacts
226+
uses: actions/upload-artifact@v4
227+
with:
228+
name: build-${{ runner.os }}
229+
path: artifacts/
230+
188231
coverage:
189232
if: >-
190233
always() &&
@@ -222,3 +265,51 @@ jobs:
222265
flags: ${{ matrix.flag }}
223266
token: ${{ secrets.CODECOV_TOKEN }}
224267
verbose: true
268+
269+
release:
270+
if:
271+
always() &&
272+
needs.setup_release.outputs.publish_release == 'true' &&
273+
needs.build.result == 'success' &&
274+
startsWith(github.repository, 'LizardByte/')
275+
name: Release
276+
needs: [build, setup_release]
277+
runs-on: ubuntu-latest
278+
steps:
279+
- name: Download build artifact (Windows)
280+
uses: actions/download-artifact@v4
281+
with:
282+
name: build-Windows
283+
path: build-Windows
284+
285+
- name: Download build artifact (Linux)
286+
uses: actions/download-artifact@v4
287+
with:
288+
name: build-Linux
289+
path: build-Linux
290+
291+
- name: Download build artifact (macOS)
292+
uses: actions/download-artifact@v4
293+
with:
294+
name: build-macOS
295+
path: build-macOS
296+
297+
- name: Move artifacts
298+
run: |
299+
mkdir -p artifacts
300+
mv -f build-Windows/test_libdisplaydevice.exe artifacts/test_libdisplaydevice-Windows.exe
301+
mv -f build-Linux/test_libdisplaydevice artifacts/test_libdisplaydevice-Linux
302+
mv -f build-macOS/test_libdisplaydevice artifacts/test_libdisplaydevice-macOS
303+
304+
- name: Create/Update GitHub Release
305+
if: ${{ needs.setup_release.outputs.publish_release == 'true' }}
306+
uses: LizardByte/create-release-action@v2024.614.221009
307+
with:
308+
allowUpdates: true
309+
body: ${{ needs.setup_release.outputs.release_body }}
310+
discussionCategory: announcements
311+
generateReleaseNotes: ${{ needs.setup_release.outputs.release_generate_release_notes }}
312+
name: ${{ needs.setup_release.outputs.release_tag }}
313+
prerelease: true
314+
tag: ${{ needs.setup_release.outputs.release_tag }}
315+
token: ${{ secrets.GH_BOT_TOKEN }}

0 commit comments

Comments
 (0)