Skip to content

Tested Build

Tested Build #145

Workflow file for this run

name: Tested Build
on:
workflow_dispatch:
env:
ContinuousIntegrationBuild: true
DOTNET_NOLOGO: true
SuppressNETCoreSdkPreviewMessage: true
jobs:
platform-build:
name: Platform Build
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04, ubuntu-22.04-arm, windows-2022, macos-latest]
steps:
- uses: actions/checkout@v4
# Avoid wasting type on updating man pages which are not used anyway
- run: sudo rm -f /var/lib/man-db/auto-update
if: runner.os == 'Linux'
- name: Setup prerequisites
uses: ./.github/actions/setup-prerequisites
# - name: Setup MSYS2
# if: runner.os == 'Windows'
# uses: msys2/setup-msys2@v2
- name: Setup Cygwin
if: runner.os == 'Windows'
uses: cygwin/cygwin-install-action@v6
- name: Setup GNU
if: runner.os == 'macOS'
run: |
brew install gnu-sed
- name: Diagnostic
run: |
just gnu-tk list -q
just gnu-tk check -q
- name: Diagnostic (Windows)
if: runner.os == 'Windows'
run: |
just gnu-tk check -q -t busybox
just gnu-tk check -q -t msys2
just gnu-tk check -q -t cygwin
just gnu-tk check -q -t git
- name: Diagnostic (macOS)
if: runner.os == 'macOS'
run: |
just gnu-tk check -q -t system
just gnu-tk check -q -t brew
echo "sed: $(just gnu-tk -l which sed)"
- name: Diagnostic (Linux)
if: runner.os == 'Linux'
run: |
just gnu-tk check -q -t system
- name: Test
run: just test
- name: Build platform-dependent artifacts
env:
GP_OSS_MANUFACTURER: ${{ vars.GP_OSS_MANUFACTURER }}
GP_OSS_SWID_REGID: ${{ vars.GP_OSS_SWID_REGID }}
GP_OSS_PROJECT_MSI_UPGRADE_CODE: ${{ vars.GP_OSS_PROJECT_MSI_UPGRADE_CODE }}
GP_OSS_PROJECT_DEV_URL: ${{ secrets.GP_OSS_PROJECT_DEV_URL }}
run: just platform-build
- uses: actions/upload-artifact@v4
with:
name: gnu-tk-artifacts-${{ matrix.os }}
path: |
Source/**/bin/Release/**/publish/
Source/**/bin/*/Release/*/*.msi
!Source/**/*.pdb
!Source/**/*.dbg
!Source/**/*.dSYM
if-no-files-found: error
publish:
name: Publish
needs: platform-build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Avoid wasting type on updating man pages which are not used anyway
- run: sudo rm -f /var/lib/man-db/auto-update
- name: Setup prerequisites
uses: ./.github/actions/setup-prerequisites
- run: sudo apt-get install -y xq
- name: Setup security environment
env:
GP_OSS_ASSEMBLY_SNK: ${{ secrets.GP_OSS_ASSEMBLY_SNK }}
run: |
echo $GP_OSS_ASSEMBLY_SNK | base64 --decode > gp-oss-assembly.snk
- name: Create .env file
run: |
cat <<EOF >.env
AssemblyOriginatorKeyFile=`pwd`/gp-oss-assembly.snk
EOF
- name: Publish artifacts
run: just publish
- uses: actions/download-artifact@v4
with:
path: Source
merge-multiple: true
- name: Publish platform-dependent artifacts
run: just platform-publish
- uses: actions/upload-artifact@v4
with:
name: gnu-tk-artifacts-publish
path: |
Documentation/CHANGELOG.md
Source/**/bin/Release/nuget/*.nupkg
Source/Packaging/**/bin/*.zip
Source/Packaging/**/bin/*.tar.gz
Source/Packaging/**/bin/*.tgz
Source/Packaging/**/bin/*.msi
Source/Packaging/**/bin/*SUMS
if-no-files-found: error