diff --git a/.github/workflows/dotnet-core.yml b/.github/workflows/dotnet-core.yml index 7809aeb..b7607c8 100644 --- a/.github/workflows/dotnet-core.yml +++ b/.github/workflows/dotnet-core.yml @@ -9,7 +9,7 @@ jobs: name: Release strategy: matrix: - kind: ['linux', 'windows', 'macOS'] + kind: ['linux', 'windows'] include: - kind: linux os: ubuntu-latest @@ -17,9 +17,6 @@ jobs: - kind: windows os: windows-latest target: win-x64 - - kind: macOS - os: macos-latest - target: osx-x64 runs-on: ${{ matrix.os }} steps: - name: Checkout @@ -34,21 +31,24 @@ jobs: run: | # Define some variables for things we need release_name="tql-${{ matrix.target }}" + version=$(cut -c 2- <<< "${{ github.ref_name }}") + + echo "Building version > $version <" # Build everything dotnet publish TransactionQL.Plugins.ING/TransactionQL.Plugins.ING.fsproj \ - -c Release --runtime "${{ matrix.target }}" -o "dist/ing" + -c Release --runtime "${{ matrix.target }}" -o "dist/ing" -p:Version=$version dotnet publish TransactionQL.Plugins.Bunq/TransactionQL.Plugins.Bunq.fsproj \ - -c Release --runtime "${{ matrix.target }}" -o "dist/bunq" + -c Release --runtime "${{ matrix.target }}" -o "dist/bunq" -p:Version=$version dotnet publish TransactionQL.Plugins.ASN/TransactionQL.Plugins.ASN.fsproj \ - -c Release --runtime "${{ matrix.target }}" -o "dist/asn" + -c Release --runtime "${{ matrix.target }}" -o "dist/asn" -p:Version=$version dotnet publish TransactionQL.Console/TransactionQL.Console.fsproj \ -c Release --runtime "${{ matrix.target }}" -o "$release_name/console" \ - -p:PublishSingleFile=true --no-self-contained + -p:PublishSingleFile=true --no-self-contained -p:Version=$version dotnet publish TransactionQL.DesktopApp/TransactionQL.DesktopApp.csproj \ -c Release --runtime "${{ matrix.target }}" -o "$release_name/desktop" \ - -p:PublishSingleFile=true --no-self-contained + -p:PublishSingleFile=true --no-self-contained -p:Version=$version # Copy plugin DLLs mkdir "$release_name/plugins" @@ -69,5 +69,6 @@ jobs: uses: softprops/action-gh-release@v1 with: files: "tql*" + prerelease: ${{ contains(github.ref_name, '-') }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/TransactionQL.Application/Configuration.fs b/TransactionQL.Application/Configuration.fs index 525cd55..bf5d033 100644 --- a/TransactionQL.Application/Configuration.fs +++ b/TransactionQL.Application/Configuration.fs @@ -1,5 +1,8 @@ namespace TransactionQL.Application +open System.Diagnostics +open System.Reflection + module Configuration = open System @@ -16,3 +19,12 @@ module Configuration = let dir = Path.Combine(appDir, "plugins") Directory.CreateDirectory dir |> ignore dir + + let getAppVersion = + let assembly = Assembly.GetExecutingAssembly() + let fileVersionInfo = assembly.GetCustomAttribute() + let v = fileVersionInfo.InformationalVersion + let i = v.LastIndexOf("+") + if i < 0 + then v + else v.Substring(0, i) diff --git a/TransactionQL.Application/TransactionQL.Application.fsproj b/TransactionQL.Application/TransactionQL.Application.fsproj index 3f3d858..0b8c235 100644 --- a/TransactionQL.Application/TransactionQL.Application.fsproj +++ b/TransactionQL.Application/TransactionQL.Application.fsproj @@ -4,7 +4,6 @@ net8.0 true TransactionQL.CsharpApi - 2.2.0 diff --git a/TransactionQL.Console/Program.fs b/TransactionQL.Console/Program.fs index cc90808..a2140ca 100644 --- a/TransactionQL.Console/Program.fs +++ b/TransactionQL.Console/Program.fs @@ -53,7 +53,6 @@ module Program = interface IArgParserTemplate with member s.Usage = - let v = Assembly.GetExecutingAssembly().GetCustomAttribute(typeof) :?> AssemblyFileVersionAttribute match s with | Files _ -> "the paths to the transactions and filter files" | Date _ -> $"the date output format (default: %s{defaultOpts.Format.Date})" @@ -67,7 +66,7 @@ module Program = | Locale _ -> $"the locale used to parse decimal values (default: %s{defaultOpts.Locale})" | AddDescription _ -> $"add the transaction's description below the header (default: %A{defaultOpts.AddDescription})" - | Version -> $"You're running tql {v.Version}" + | Version -> $"You're running tql {Configuration.getAppVersion}" let parseFilters options = let filter = QLParser.parse ((new StreamReader(options.FilterFile)).ReadToEnd()) diff --git a/TransactionQL.Console/TransactionQL.Console.fsproj b/TransactionQL.Console/TransactionQL.Console.fsproj index 88de186..aa51bbd 100644 --- a/TransactionQL.Console/TransactionQL.Console.fsproj +++ b/TransactionQL.Console/TransactionQL.Console.fsproj @@ -6,7 +6,6 @@ ./nupkg Exe net8.0 - 2.2.0 diff --git a/TransactionQL.DesktopApp/Models/About.cs b/TransactionQL.DesktopApp/Models/About.cs index de8570f..6d649df 100644 --- a/TransactionQL.DesktopApp/Models/About.cs +++ b/TransactionQL.DesktopApp/Models/About.cs @@ -1,5 +1,4 @@ -using System.Reflection; -using TransactionQL.Application; +using TransactionQL.Application; namespace TransactionQL.DesktopApp.Models; @@ -8,7 +7,7 @@ public class About public string TqlBinaryLocation { get; } = Configuration.createAndGetAppDir; public string PluginDirectory { get; } = Configuration.createAndGetPluginDir; public string Version { get; } = - Assembly.GetExecutingAssembly().GetCustomAttribute()?.Version + Configuration.getAppVersion ?? ""; public static readonly About Default = new(); diff --git a/TransactionQL.DesktopApp/TransactionQL.DesktopApp.csproj b/TransactionQL.DesktopApp/TransactionQL.DesktopApp.csproj index 6d827d7..d8eadb4 100644 --- a/TransactionQL.DesktopApp/TransactionQL.DesktopApp.csproj +++ b/TransactionQL.DesktopApp/TransactionQL.DesktopApp.csproj @@ -7,7 +7,6 @@ app.manifest true Assets\lion.ico - 2.2.0 diff --git a/TransactionQL.Input/TransactionQL.Input.fsproj b/TransactionQL.Input/TransactionQL.Input.fsproj index 49f1e68..83d3da7 100644 --- a/TransactionQL.Input/TransactionQL.Input.fsproj +++ b/TransactionQL.Input/TransactionQL.Input.fsproj @@ -2,7 +2,6 @@ net8.0 - 2.2.0 diff --git a/TransactionQL.Parser/TransactionQL.Parser.fsproj b/TransactionQL.Parser/TransactionQL.Parser.fsproj index c2f033a..ccdc112 100644 --- a/TransactionQL.Parser/TransactionQL.Parser.fsproj +++ b/TransactionQL.Parser/TransactionQL.Parser.fsproj @@ -1,27 +1,26 @@  - - net8.0 - 2.2.0 - + + net8.0 + - - - - - - + + + + + + - - - + + + - - - + + + - - - + + + diff --git a/publish.ps1 b/publish.ps1 index ed6ed3e..5f7b366 100644 --- a/publish.ps1 +++ b/publish.ps1 @@ -10,13 +10,16 @@ function AddToPath($dir) { } } - -dotnet publish TransactionQL.Plugins.ING/TransactionQL.Plugins.ING.fsproj -c $configuration -dotnet publish TransactionQL.Plugins.Bunq/TransactionQL.Plugins.Bunq.fsproj -c $configuration -dotnet publish TransactionQL.Plugins.ASN/TransactionQL.Plugins.ASN.fsproj -c $configuration -dotnet publish TransactionQL.Console\TransactionQL.Console.fsproj -c $configuration -r win-x64 -p:PublishSingleFile=true --no-self-contained -dotnet publish TransactionQL.DesktopApp/TransactionQL.DesktopApp.csproj -c $configuration -r win-x64 -p:PublishSingleFile=true --no-self-contained - +$latest_tag=$(git tag | sort | % { $_.Substring(1) } | Select -Last 1 ) +$commit=$(git rev-parse --short HEAD) +$version="$($latest_tag)-$commit" +Write-Host "Publishing version > $version <" + +dotnet publish TransactionQL.Plugins.ING/TransactionQL.Plugins.ING.fsproj -c $configuration -p:Version=$version +dotnet publish TransactionQL.Plugins.Bunq/TransactionQL.Plugins.Bunq.fsproj -c $configuration -p:Version=$version +dotnet publish TransactionQL.Plugins.ASN/TransactionQL.Plugins.ASN.fsproj -c $configuration -p:Version=$version +dotnet publish TransactionQL.Console\TransactionQL.Console.fsproj -c $configuration -r win-x64 -p:PublishSingleFile=true --no-self-contained -p:Version=$version +dotnet publish TransactionQL.DesktopApp/TransactionQL.DesktopApp.csproj -c $configuration -r win-x64 -p:PublishSingleFile=true --no-self-contained -p:Version=$version $appData = [environment]::GetFolderPath("ApplicationData") $appDir = Join-Path $appData "tql"