forked from LykosAI/StabilityMatrix
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request LykosAI#495 from ionite34/release-2.8.0
Release 2.8.0
- Loading branch information
Showing
307 changed files
with
17,177 additions
and
3,192 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -43,6 +43,10 @@ on: | |
- stable | ||
- preview | ||
- development | ||
test-release-artifacts: | ||
type: boolean | ||
description: "[Debug] Test release artifacts?" | ||
default: false | ||
|
||
jobs: | ||
release-linux: | ||
|
@@ -171,11 +175,122 @@ jobs: | |
with: | ||
name: StabilityMatrix-${{ env.platform-id }} | ||
path: ./out/${{ env.out-name }} | ||
|
||
|
||
release-macos: | ||
name: Release (macos-arm64) | ||
env: | ||
platform-id: osx-arm64 | ||
app-name: "Stability Matrix.app" | ||
out-name: "StabilityMatrix-macos-arm64.dmg" | ||
runs-on: macos-13 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- uses: olegtarasov/[email protected] | ||
if: github.event_name == 'release' | ||
id: tag_name | ||
with: | ||
tagRegex: "v(.*)" | ||
|
||
- name: Set Version from Tag | ||
if: github.event_name == 'release' | ||
run: | | ||
echo "Using tag ${{ env.GIT_TAG_NAME }}" | ||
echo "RELEASE_VERSION=${{ env.GIT_TAG_NAME }}" >> $GITHUB_ENV | ||
- name: Set Version from manual input | ||
if: github.event_name == 'workflow_dispatch' | ||
run: | | ||
echo "Using version ${{ github.event.inputs.version }}" | ||
echo "RELEASE_VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV | ||
- name: Set up .NET 8 | ||
uses: actions/setup-dotnet@v3 | ||
with: | ||
dotnet-version: '8.0.x' | ||
|
||
- name: Install dependencies | ||
run: dotnet restore -p:PublishReadyToRun=true | ||
|
||
- name: Check Version | ||
run: echo $RELEASE_VERSION | ||
|
||
- name: .NET Msbuild (App) | ||
env: | ||
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | ||
run: > | ||
dotnet msbuild ./StabilityMatrix.Avalonia/StabilityMatrix.Avalonia.csproj | ||
-t:BundleApp -p:UseAppHost=true -p:SelfContained=true | ||
-p:Configuration=Release -p:RuntimeIdentifier=${{ env.platform-id }} | ||
-p:Version=$RELEASE_VERSION | ||
-p:PublishDir=out | ||
-p:PublishReadyToRun=true | ||
-p:CFBundleShortVersionString=$RELEASE_VERSION | ||
-p:CFBundleName="Stability Matrix" | ||
-p:CFBundleDisplayName="Stability Matrix" | ||
-p:CFBundleVersion=$RELEASE_VERSION | ||
-p:SentryOrg=${{ secrets.SENTRY_ORG }} -p:SentryProject=${{ secrets.SENTRY_PROJECT }} | ||
-p:SentryUploadSymbols=true -p:SentryUploadSources=true | ||
- name: Post Build (App) | ||
run: mkdir -p signing && mv "./StabilityMatrix.Avalonia/out/Stability Matrix.app" "./signing/${{ env.app-name }}" | ||
|
||
- name: Codesign app bundle | ||
env: | ||
MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }} | ||
MACOS_CERTIFICATE_PWD: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }} | ||
MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }} | ||
MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }} | ||
run: ./Build/codesign_macos.sh "./signing/${{ env.app-name }}" | ||
|
||
- name: Notarize app bundle | ||
env: | ||
MACOS_NOTARIZATION_APPLE_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_APPLE_ID }} | ||
MACOS_NOTARIZATION_TEAM_ID: ${{ secrets.PROD_MACOS_NOTARIZATION_TEAM_ID }} | ||
MACOS_NOTARIZATION_PWD: ${{ secrets.PROD_MACOS_NOTARIZATION_PWD }} | ||
run: ./Build/notarize_macos.sh "./signing/${{ env.app-name }}" | ||
|
||
- name: Zip Artifact (App) | ||
working-directory: signing | ||
run: zip -r -y "../StabilityMatrix-${{ env.platform-id }}-app.zip" "${{ env.app-name }}" | ||
|
||
- name: Upload Artifact (App) | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: StabilityMatrix-${{ env.platform-id }}-app | ||
path: StabilityMatrix-${{ env.platform-id }}-app.zip | ||
|
||
- uses: actions/setup-node@v4 | ||
with: | ||
node-version: '20.x' | ||
|
||
- name: Install dependencies for dmg creation | ||
run: > | ||
npm install --global create-dmg | ||
brew install graphicsmagick imagemagick | ||
- name: Create dmg | ||
working-directory: signing | ||
run: > | ||
create-dmg "${{ env.app-name }}" --overwrite --identity "${{ secrets.PROD_MACOS_CERTIFICATE_NAME }}" | ||
- name: Rename dmg | ||
working-directory: signing | ||
run: mv "$(find . -type f -name "*.dmg")" "${{ env.out-name }}" | ||
|
||
- name: Zip Artifact (dmg) | ||
working-directory: signing | ||
run: zip -r -y "../StabilityMatrix-${{ env.platform-id }}-dmg.zip" "${{ env.out-name }}" | ||
|
||
- name: Upload Artifact (dmg) | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: StabilityMatrix-${{ env.platform-id }}-dmg | ||
path: StabilityMatrix-${{ env.platform-id }}-dmg.zip | ||
|
||
publish-release: | ||
name: Publish GitHub Release | ||
needs: [ release-linux, release-windows ] | ||
needs: [ release-linux, release-windows, release-macos ] | ||
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.github-release == 'true' }} | ||
runs-on: ubuntu-latest | ||
steps: | ||
|
@@ -194,11 +309,12 @@ jobs: | |
- name: Download Artifacts | ||
uses: actions/download-artifact@v3 | ||
|
||
# Zip each build | ||
# Zip each build (except macos which is already dmg) | ||
- name: Zip Artifacts | ||
run: | | ||
cd StabilityMatrix-win-x64 && zip -r ../StabilityMatrix-win-x64.zip ./. && cd $OLDPWD | ||
cd StabilityMatrix-linux-x64 && zip -r ../StabilityMatrix-linux-x64.zip ./. && cd $OLDPWD | ||
unzip "StabilityMatrix-osx-arm64-dmg/StabilityMatrix-osx-arm64-dmg.zip" | ||
- name: Create Github Release | ||
id: create_release | ||
|
@@ -209,15 +325,75 @@ jobs: | |
files: | | ||
StabilityMatrix-win-x64.zip | ||
StabilityMatrix-linux-x64.zip | ||
StabilityMatrix-macos-arm64.dmg | ||
fail_on_unmatched_files: true | ||
tag_name: v${{ github.event.inputs.version }} | ||
body: ${{ steps.release_notes.outputs.release_notes }} | ||
draft: ${{ github.event.inputs.github-release-draft == 'true' }} | ||
prerelease: ${{ github.event.inputs.github-release-prerelease == 'true' }} | ||
|
||
test-artifacts: | ||
name: Test Release Artifacts | ||
needs: [ release-linux, release-windows, release-macos ] | ||
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.test-release-artifacts == 'true' }} | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Extract Release Notes | ||
id: release_notes | ||
run: | | ||
RELEASE_NOTES="$(awk -v version="${{ github.event.inputs.version }}" '/## v/{if(p) exit; if($0 ~ version) p=1}; p' CHANGELOG.md)" | ||
RELEASE_NOTES="${RELEASE_NOTES//'%'/'%25'}" | ||
RELEASE_NOTES="${RELEASE_NOTES//$'\n'/'%0A'}" | ||
RELEASE_NOTES="${RELEASE_NOTES//$'\r'/'%0D'}" | ||
echo "::set-output name=release_notes::$RELEASE_NOTES" | ||
echo "Release Notes:" | ||
echo "$RELEASE_NOTES" | ||
# Downloads all previous artifacts to the current working directory | ||
- name: Download Artifacts | ||
uses: actions/download-artifact@v3 | ||
|
||
# Zip each build (except macos which is already dmg) | ||
- name: Zip Artifacts | ||
run: | | ||
cd StabilityMatrix-win-x64 && zip -r ../StabilityMatrix-win-x64.zip ./. && cd $OLDPWD | ||
cd StabilityMatrix-linux-x64 && zip -r ../StabilityMatrix-linux-x64.zip ./. && cd $OLDPWD | ||
unzip "StabilityMatrix-osx-arm64-dmg/StabilityMatrix-osx-arm64-dmg.zip" | ||
# Check that the zips and CHANGELOG.md are in the current working directory | ||
- name: Check files | ||
run: | | ||
if [ ! -f StabilityMatrix-win-x64.zip ]; then | ||
echo "StabilityMatrix-win-x64.zip not found" | ||
exit 1 | ||
else | ||
echo "StabilityMatrix-win-x64.zip found" | ||
sha256sum StabilityMatrix-win-x64.zip | ||
fi | ||
if [ ! -f StabilityMatrix-linux-x64.zip ]; then | ||
echo "StabilityMatrix-linux-x64.zip not found" | ||
exit 1 | ||
else | ||
echo "StabilityMatrix-linux-x64.zip found" | ||
sha256sum StabilityMatrix-linux-x64.zip | ||
fi | ||
if [ ! -f StabilityMatrix-macos-arm64.dmg ]; then | ||
echo "StabilityMatrix-macos-arm64.dmg not found" | ||
exit 1 | ||
else | ||
echo "StabilityMatrix-macos-arm64.dmg found" | ||
sha256sum StabilityMatrix-macos-arm64.dmg | ||
fi | ||
if [ ! -f CHANGELOG.md ]; then | ||
echo "CHANGELOG.md not found" | ||
exit 1 | ||
fi | ||
publish-auto-update-github: | ||
name: Publish Auto-Update Release (GitHub) | ||
needs: [ release-linux, release-windows ] | ||
needs: [ release-linux, release-windows, release-macos ] | ||
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.auto-update-release == 'true' && github.event.inputs.auto-update-release-mode == 'github url' }} | ||
runs-on: ubuntu-latest | ||
steps: | ||
|
@@ -233,7 +409,7 @@ jobs: | |
python-version: '3.11' | ||
|
||
- name: Install Python Dependencies | ||
run: pip install stability-matrix-tools>=0.2.18 --upgrade | ||
run: pip install stability-matrix-tools>=0.3.0 --upgrade | ||
|
||
- name: Publish Auto-Update Release | ||
env: | ||
|
@@ -246,7 +422,7 @@ jobs: | |
|
||
publish-auto-update-b2: | ||
name: Publish Auto-Update Release (B2) | ||
needs: [ release-linux, release-windows ] | ||
needs: [ release-linux, release-windows, release-macos ] | ||
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.auto-update-release == 'true' && github.event.inputs.auto-update-release-mode == 'upload to b2' }} | ||
runs-on: ubuntu-latest | ||
steps: | ||
|
@@ -261,18 +437,19 @@ jobs: | |
- name: Download Artifacts | ||
uses: actions/download-artifact@v3 | ||
|
||
# Zip each build | ||
# Zip each build (except macos which is already dmg) | ||
- name: Zip Artifacts | ||
run: | | ||
cd StabilityMatrix-win-x64 && zip -r ../StabilityMatrix-win-x64.zip ./. && cd $OLDPWD | ||
cd StabilityMatrix-linux-x64 && zip -r ../StabilityMatrix-linux-x64.zip ./. && cd $OLDPWD | ||
unzip "StabilityMatrix-osx-arm64-dmg/StabilityMatrix-osx-arm64-dmg.zip" | ||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: '3.11' | ||
|
||
- name: Install Python Dependencies | ||
run: pip install stability-matrix-tools>=0.2.18 --upgrade | ||
run: pip install stability-matrix-tools>=0.3.0 --upgrade | ||
|
||
# Check that the zips and CHANGELOG.md are in the current working directory | ||
- name: Check files | ||
|
@@ -285,6 +462,10 @@ jobs: | |
echo "StabilityMatrix-linux-x64.zip not found" | ||
exit 1 | ||
fi | ||
if [ ! -f StabilityMatrix-macos-arm64.dmg ]; then | ||
echo "StabilityMatrix-macos-arm64.dmg not found" | ||
exit 1 | ||
fi | ||
if [ ! -f CHANGELOG.md ]; then | ||
echo "CHANGELOG.md not found" | ||
exit 1 | ||
|
@@ -303,4 +484,5 @@ jobs: | |
--changelog CHANGELOG.md | ||
--win-x64 StabilityMatrix-win-x64.zip | ||
--linux-x64 StabilityMatrix-linux-x64.zip | ||
--macos-arm64 StabilityMatrix-macos-arm64.dmg | ||
-y |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -397,3 +397,4 @@ FodyWeavers.xsd | |
|
||
# JetBrains Rider | ||
*.sln.iml | ||
.husky/pre-commit |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
<Project Sdk="Microsoft.NET.Sdk"> | ||
<PropertyGroup> | ||
<TargetFramework>net8.0</TargetFramework> | ||
<LangVersion>latest</LangVersion> | ||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks> | ||
<RuntimeIdentifiers>win-x64;linux-x64;osx-x64;osx-arm64</RuntimeIdentifiers> | ||
<ImplicitUsings>enable</ImplicitUsings> | ||
<Nullable>enable</Nullable> | ||
<BuiltInComInteropSupport>true</BuiltInComInteropSupport> | ||
<EnableWindowsTargeting>true</EnableWindowsTargeting> | ||
</PropertyGroup> | ||
<ItemGroup> | ||
<PackageReference Include="Avalonia" Version="11.0.7" /> | ||
<PackageReference Include="SkiaSharp" Version="2.88.7" /> | ||
<PackageReference Include="DotNet.Bundle" Version="0.9.13" /> | ||
</ItemGroup> | ||
|
||
</Project> |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
namespace Avalonia.Gif | ||
{ | ||
internal enum BgWorkerCommand | ||
{ | ||
Null, | ||
Play, | ||
Pause, | ||
Dispose | ||
} | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
namespace Avalonia.Gif | ||
{ | ||
internal enum BgWorkerState | ||
{ | ||
Null, | ||
Start, | ||
Running, | ||
Paused, | ||
Complete, | ||
Dispose | ||
} | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
namespace Avalonia.Gif.Decoding | ||
{ | ||
internal enum BlockTypes | ||
{ | ||
Empty = 0, | ||
Extension = 0x21, | ||
ImageDescriptor = 0x2C, | ||
Trailer = 0x3B, | ||
} | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
namespace Avalonia.Gif.Decoding | ||
{ | ||
internal enum ExtensionType | ||
{ | ||
GraphicsControl = 0xF9, | ||
Application = 0xFF | ||
} | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
namespace Avalonia.Gif.Decoding | ||
{ | ||
public enum FrameDisposal | ||
{ | ||
Unknown = 0, | ||
Leave = 1, | ||
Background = 2, | ||
Restore = 3 | ||
} | ||
} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
using System.Runtime.InteropServices; | ||
|
||
namespace Avalonia.Gif | ||
{ | ||
[StructLayout(LayoutKind.Explicit)] | ||
public readonly struct GifColor | ||
{ | ||
[FieldOffset(3)] | ||
public readonly byte A; | ||
|
||
[FieldOffset(2)] | ||
public readonly byte R; | ||
|
||
[FieldOffset(1)] | ||
public readonly byte G; | ||
|
||
[FieldOffset(0)] | ||
public readonly byte B; | ||
|
||
/// <summary> | ||
/// A struct that represents a ARGB color and is aligned as | ||
/// a BGRA bytefield in memory. | ||
/// </summary> | ||
/// <param name="r">Red</param> | ||
/// <param name="g">Green</param> | ||
/// <param name="b">Blue</param> | ||
/// <param name="a">Alpha</param> | ||
public GifColor(byte r, byte g, byte b, byte a = byte.MaxValue) | ||
{ | ||
A = a; | ||
R = r; | ||
G = g; | ||
B = b; | ||
} | ||
} | ||
} |
Oops, something went wrong.