Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
a77b524
Centralize repository version at 1.0.1
uniblab Sep 4, 2026
6abe7e2
Use centralized repository version
uniblab Sep 4, 2026
786d410
Use centralized repository version
uniblab Sep 4, 2026
9afa284
Normalize local build wrapper
uniblab Sep 4, 2026
a859e25
Normalize Unix build wrapper
uniblab Sep 4, 2026
bf750b6
Add canonical repository build helpers
uniblab Sep 4, 2026
bb47d52
Add repository metadata discovery
uniblab Sep 4, 2026
0dc5c58
Add canonical local build orchestration
uniblab Sep 4, 2026
ba7152b
Add canonical package validation
uniblab Sep 4, 2026
576c005
Add canonical distribution validation
uniblab Sep 4, 2026
2f08232
Add release package selection
uniblab Sep 4, 2026
71b5530
Add canonical release archive builder
uniblab Sep 4, 2026
19264ef
Document normalized build lifecycle
uniblab Sep 4, 2026
e038c6d
Adopt canonical pull request workflow
uniblab Sep 4, 2026
41508c8
Adopt canonical main workflow
uniblab Sep 4, 2026
ef58a7f
Add canonical manual distribution workflow
uniblab Sep 4, 2026
2d19dcd
Add canonical tagged release workflow
uniblab Sep 4, 2026
c39a64b
Remove legacy PR workflow
uniblab Sep 4, 2026
6af7028
Remove legacy main workflow
uniblab Sep 4, 2026
cc53bbf
Document normalized build and versioning
uniblab Sep 4, 2026
6246ed8
Use portable solution metadata path
uniblab Sep 4, 2026
131f714
Make kill non-packable
uniblab Sep 4, 2026
e11b43a
Make renice non-packable
uniblab Sep 4, 2026
5deb257
Add utillinux router project
uniblab Sep 4, 2026
dc3bb57
Implement utillinux router dispatch
uniblab Sep 4, 2026
2895d77
Add utillinux program entry point
uniblab Sep 4, 2026
54f8a39
Add router test project
uniblab Sep 4, 2026
c219134
Test utillinux router
uniblab Sep 4, 2026
f7cd5c9
Add utillinux router to solution
uniblab Sep 4, 2026
30d956c
Document utillinux router and package
uniblab Sep 4, 2026
19418e0
Enforce UtilLinux package boundary
uniblab Sep 4, 2026
1b9a87a
Validate exact UtilLinux tool package
uniblab Sep 4, 2026
e582e4c
Verify exact UtilLinux package in distribution
uniblab Sep 4, 2026
44e31fd
Validate sole UtilLinux tool package in PR
uniblab Sep 4, 2026
3d5bf7e
Validate sole UtilLinux package on release
uniblab Sep 4, 2026
c707744
Fix package validator condition syntax
uniblab Sep 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .github/workflows/distribution-validation.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: distribution-validation
on:
workflow_dispatch:
inputs:
configuration:
description: Build configuration
required: true
default: Release
type: choice
options: [Debug, Staging, Release]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
env:
DOTNET_VERSION: 10.0.x
jobs:
metadata:
runs-on: ubuntu-latest
outputs:
has_solution: ${{ steps.repository.outputs.has_solution }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- id: repository
shell: pwsh
run: ./packaging/Get-RepositoryMetadata.ps1 -Configuration '${{ inputs.configuration }}' -GitHubOutputPath $env:GITHUB_OUTPUT
validate:
needs: metadata
if: needs.metadata.outputs.has_solution == 'true'
strategy:
fail-fast: false
matrix:
include:
- { os: windows-latest, name: Windows x64 }
- { os: windows-11-arm, name: Windows ARM64 }
- { os: ubuntu-24.04, name: Linux x64 }
- { os: ubuntu-24.04-arm, name: Linux ARM64 }
- { os: macos-15-intel, name: macOS x64 }
- { os: macos-15, name: macOS ARM64 }
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Verify distribution
shell: pwsh
run: ./packaging/VerifyDistribution.ps1 -Configuration '${{ inputs.configuration }}'
48 changes: 48 additions & 0 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: main
on:
push:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
env:
DOTNET_VERSION: 10.0.x
CONFIGURATION: Release
jobs:
metadata:
runs-on: ubuntu-latest
outputs:
has_solution: ${{ steps.repository.outputs.has_solution }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- id: repository
shell: pwsh
run: ./packaging/Get-RepositoryMetadata.ps1 -Configuration '${{ env.CONFIGURATION }}' -GitHubOutputPath $env:GITHUB_OUTPUT
validate:
needs: metadata
if: needs.metadata.outputs.has_solution == 'true'
strategy:
fail-fast: false
matrix:
include:
- { os: windows-latest, name: Windows x64 }
- { os: windows-11-arm, name: Windows ARM64 }
- { os: ubuntu-24.04, name: Linux x64 }
- { os: ubuntu-24.04-arm, name: Linux ARM64 }
- { os: macos-15-intel, name: macOS x64 }
- { os: macos-15, name: macOS ARM64 }
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Verify Release distribution
shell: pwsh
run: ./packaging/VerifyDistribution.ps1 -Configuration '${{ env.CONFIGURATION }}'
23 changes: 0 additions & 23 deletions .github/workflows/pr-build-and-test.yaml

This file was deleted.

90 changes: 90 additions & 0 deletions .github/workflows/pull-request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: pull-request

on:
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number }}
cancel-in-progress: true

permissions:
contents: read

env:
DOTNET_VERSION: 10.0.x
CONFIGURATION: Staging

jobs:
metadata:
runs-on: ubuntu-latest
outputs:
has_solution: ${{ steps.repository.outputs.has_solution }}
solution_path: ${{ steps.repository.outputs.solution_path }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- id: repository
shell: pwsh
run: >-
./packaging/Get-RepositoryMetadata.ps1
-Configuration '${{ env.CONFIGURATION }}'
-GitHubOutputPath $env:GITHUB_OUTPUT

validate:
needs: metadata
if: needs.metadata.outputs.has_solution == 'true'
strategy:
fail-fast: false
matrix:
include:
- os: windows-latest
name: Windows
verify_packages: false
- os: ubuntu-latest
name: Linux
verify_packages: true
- os: macos-latest
name: macOS
verify_packages: false
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Restore
run: dotnet restore '${{ needs.metadata.outputs.solution_path }}'
- name: Build
run: >-
dotnet build '${{ needs.metadata.outputs.solution_path }}'
-c ${{ env.CONFIGURATION }}
--no-restore
-p:ContinuousIntegrationBuild=true
- name: Test
run: >-
dotnet test '${{ needs.metadata.outputs.solution_path }}'
-c ${{ env.CONFIGURATION }}
--no-build
--no-restore
--logger trx
- name: Pack Staging artifacts
if: matrix.verify_packages
run: >-
dotnet pack '${{ needs.metadata.outputs.solution_path }}'
-c ${{ env.CONFIGURATION }}
--no-build
--no-restore
-o artifacts
-p:ContinuousIntegrationBuild=true
- name: Verify exact Staging package artifacts
if: matrix.verify_packages
shell: pwsh
run: >-
./packaging/VerifyPackageArtifact.ps1
-ArtifactDirectory artifacts
-Configuration '${{ env.CONFIGURATION }}'
-ExpectedPackageId 'Icod.UtilLinux.Tools'
-ExpectedPackageCount 1
30 changes: 0 additions & 30 deletions .github/workflows/push-main.yaml

This file was deleted.

Loading
Loading