Skip to content

Support UWP app XAML tree capture #6

Support UWP app XAML tree capture

Support UWP app XAML tree capture #6

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
tag:
description: 'Tag to release (e.g. v0.1.2)'
required: true
permissions:
contents: write
jobs:
release:
runs-on: windows-latest
env:
RELEASE_TAG: ${{ inputs.tag || github.ref_name }}
strategy:
matrix:
include:
- arch: x64
msvc_arch: x64
preset: default
build_dir: build
- arch: arm64
msvc_arch: amd64_arm64
preset: arm64
build_dir: build-arm64
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.RELEASE_TAG }}
- name: Set up MSVC
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.msvc_arch }}
- name: Set up vcpkg
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: b1b19307e2d2ec1eefbdb7ea069de7d4bcd31f01
- name: Configure
run: cmake --preset ${{ matrix.preset }} -DCMAKE_BUILD_TYPE=Release
- name: Build
run: cmake --build ${{ matrix.build_dir }}
- name: Unit tests
if: matrix.arch == 'x64'
run: ${{ matrix.build_dir }}\lvt_unit_tests.exe
- name: Integration tests
if: matrix.arch == 'x64'
run: ${{ matrix.build_dir }}\lvt_integration_tests.exe
- name: Package
run: |
New-Item -ItemType Directory -Path release -Force
Copy-Item ${{ matrix.build_dir }}\lvt.exe release\
Copy-Item ${{ matrix.build_dir }}\lvt_tap_${{ matrix.arch }}.dll release\
New-Item -ItemType Directory -Path release\skills\lvt -Force
Copy-Item .github\skills\lvt\SKILL.md release\skills\lvt\
Compress-Archive -Path release\* -DestinationPath lvt-${{ env.RELEASE_TAG }}-${{ matrix.arch }}.zip
- name: Upload release artifact
uses: actions/upload-artifact@v4
with:
name: release-${{ matrix.arch }}
path: lvt-${{ env.RELEASE_TAG }}-${{ matrix.arch }}.zip
publish:
runs-on: ubuntu-latest
needs: release
env:
RELEASE_TAG: ${{ inputs.tag || github.ref_name }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.RELEASE_TAG }}
fetch-depth: 0
fetch-tags: true
- name: Download all release artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
pattern: release-*
merge-multiple: true
- name: Extract release notes from tag
id: notes
run: |
git tag -l --format='%(contents)' ${{ env.RELEASE_TAG }} > release_notes.md
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ env.RELEASE_TAG }}
files: artifacts/*.zip
body_path: release_notes.md