name: Build MrTrust on: push: branches: - main pull_request: workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - name: Build Windows EXE shell: bash run: | set -euo pipefail version="0.1.1" dotnet publish src/MrTrustLauncher.csproj \ --configuration Release \ --runtime win-x64 \ --output dist/build \ -p:EnableWindowsTargeting=true \ -p:PublishSingleFile=true \ -p:SelfContained=false cp dist/build/MrTrust.exe dist/MrTrust.exe - name: Build release ZIP shell: bash run: | set -euo pipefail version="0.1.1" package_root="dist/MrTrust-${version}" rm -rf "$package_root" "dist/MrTrust-${version}.zip" mkdir -p "$package_root/scripts" "$package_root/assets/certificates" "$package_root/docs" cp dist/MrTrust.exe "$package_root/" cp MrTrust.ps1 README.md "$package_root/" cp assets/MrTrust.ico "$package_root/assets/" cp scripts/Install-MrTrust.ps1 scripts/Uninstall-MrTrust.ps1 scripts/Start-MrTrustGui.ps1 "$package_root/scripts/" cp assets/certificates/MrSphay-LocalTrust-Root.cer "$package_root/assets/certificates/" cp assets/certificates/MrSphay-CodeSigning.cer "$package_root/assets/certificates/" cp assets/certificates/thumbprints.txt "$package_root/assets/certificates/" cp docs/security-model.md "$package_root/docs/" (cd dist && zip -r "MrTrust-${version}.zip" "MrTrust-${version}") - name: Show package contents shell: bash run: | find dist -maxdepth 4 -type f -printf '%p %s bytes\n' - name: Upload release artifact uses: actions/upload-artifact@v3 with: name: MrTrust-0.1.1 path: dist/MrTrust-0.1.1.zip