Skip to content

Commit

Permalink
Set version based on tag (#10)
Browse files Browse the repository at this point in the history
* ci: use tag as version in msbuild

* dbg(ci): print version

* fix(ci): use github.ref_name instead

* ci: build plugins with version and read version from assembly

* fix: version must formatted like a.b.c.d-suffix
  • Loading branch information
janssen-io committed Aug 20, 2024
1 parent 57e4208 commit 76d783c
Show file tree
Hide file tree
Showing 10 changed files with 53 additions and 44 deletions.
19 changes: 10 additions & 9 deletions .github/workflows/dotnet-core.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,14 @@ jobs:
name: Release
strategy:
matrix:
kind: ['linux', 'windows', 'macOS']
kind: ['linux', 'windows']
include:
- kind: linux
os: ubuntu-latest
target: linux-x64
- kind: windows
os: windows-latest
target: win-x64
- kind: macOS
os: macos-latest
target: osx-x64
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
Expand All @@ -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"
Expand All @@ -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 }}
12 changes: 12 additions & 0 deletions TransactionQL.Application/Configuration.fs
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
namespace TransactionQL.Application

open System.Diagnostics
open System.Reflection

module Configuration =

open System
Expand All @@ -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<AssemblyInformationalVersionAttribute>()
let v = fileVersionInfo.InformationalVersion
let i = v.LastIndexOf("+")
if i < 0
then v
else v.Substring(0, i)
1 change: 0 additions & 1 deletion TransactionQL.Application/TransactionQL.Application.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
<TargetFramework>net8.0</TargetFramework>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<RootNamespace>TransactionQL.CsharpApi</RootNamespace>
<AssemblyVersion>2.2.0</AssemblyVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
3 changes: 1 addition & 2 deletions TransactionQL.Console/Program.fs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ module Program =

interface IArgParserTemplate with
member s.Usage =
let v = Assembly.GetExecutingAssembly().GetCustomAttribute(typeof<AssemblyFileVersionAttribute>) :?> AssemblyFileVersionAttribute
match s with
| Files _ -> "the paths to the transactions and filter files"
| Date _ -> $"the date output format (default: %s{defaultOpts.Format.Date})"
Expand All @@ -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())
Expand Down
1 change: 0 additions & 1 deletion TransactionQL.Console/TransactionQL.Console.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
<PackageOutputPath>./nupkg</PackageOutputPath>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<AssemblyVersion>2.2.0</AssemblyVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
5 changes: 2 additions & 3 deletions TransactionQL.DesktopApp/Models/About.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
using System.Reflection;
using TransactionQL.Application;
using TransactionQL.Application;

namespace TransactionQL.DesktopApp.Models;

Expand All @@ -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<AssemblyFileVersionAttribute>()?.Version
Configuration.getAppVersion
?? "<Unable to get version info>";

public static readonly About Default = new();
Expand Down
1 change: 0 additions & 1 deletion TransactionQL.DesktopApp/TransactionQL.DesktopApp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
<ApplicationManifest>app.manifest</ApplicationManifest>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
<ApplicationIcon>Assets\lion.ico</ApplicationIcon>
<AssemblyVersion>2.2.0</AssemblyVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
1 change: 0 additions & 1 deletion TransactionQL.Input/TransactionQL.Input.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<AssemblyVersion>2.2.0</AssemblyVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
37 changes: 18 additions & 19 deletions TransactionQL.Parser/TransactionQL.Parser.fsproj
Original file line number Diff line number Diff line change
@@ -1,27 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<AssemblyVersion>2.2.0</AssemblyVersion>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
<Compile Include="Interpretation.fs" />
<Compile Include="AST.fs" />
<Compile Include="QLParser.fs" />
<Compile Include="QLInterpreter.fs" />
</ItemGroup>
<ItemGroup>
<Compile Include="Interpretation.fs" />
<Compile Include="AST.fs" />
<Compile Include="QLParser.fs" />
<Compile Include="QLInterpreter.fs" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="FParsec" Version="1.1.1" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FParsec" Version="1.1.1" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\TransactionQL.Shared\TransactionQL.Shared.fsproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\TransactionQL.Shared\TransactionQL.Shared.fsproj" />
</ItemGroup>

<ItemGroup>
<PackageReference Update="FSharp.Core" Version="8.0.301" />
</ItemGroup>
<ItemGroup>
<PackageReference Update="FSharp.Core" Version="8.0.301" />
</ItemGroup>

</Project>
17 changes: 10 additions & 7 deletions publish.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down

0 comments on commit 76d783c

Please sign in to comment.