Skip to content

Change HelloXCode sample. Generate sln/vcxproj and be compatible with Rider on Mac #3352

Change HelloXCode sample. Generate sln/vcxproj and be compatible with Rider on Mac

Change HelloXCode sample. Generate sln/vcxproj and be compatible with Rider on Mac #3352

Workflow file for this run

# Sharpmake GitHub Actions CI configuration
name: build
on:
push:
branches:
- '**'
pull_request:
schedule:
# Run at 02:17 every day
- cron: '17 2 * * *'
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
DOTNET_NOLOGO: true
jobs:
builds:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-15, windows-2022]
framework: [net8.0]
configuration: [Debug, Release]
uses: ./.github/workflows/build.yml
with:
os: ${{ matrix.os }}
framework: ${{ matrix.framework }}
configuration: ${{ matrix.configuration }}
functional_test:
needs: [builds]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-2022]
framework: [net8.0]
steps:
- name: Checkout the repo
uses: actions/checkout@v6.0.2
- name: Setup .NET 8
uses: actions/setup-dotnet@v5
with:
dotnet-version: '8.0.x'
- name: Download sharpmake ${{ matrix.framework }} ${{ runner.os }}-release binaries
uses: actions/download-artifact@v8
with:
name: 'Sharpmake-${{ matrix.framework }}-${{ runner.os }}-${{ github.sha }}'
path: Sharpmake.Application/bin/Release/${{ matrix.framework }}
- name: FunctionalTest
if: runner.os == 'Windows'
run: python functional_test.py --sharpmake_exe "Sharpmake.Application/bin/release/${{ matrix.framework }}/Sharpmake.Application.exe"
generate_samples_matrix:
needs: [builds]
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Checkout the repo
uses: actions/checkout@v6.0.2
- name: Generate samples matrix
id: set-matrix
shell: pwsh
run: |
$sampleMatrix = .\.github\Get-SamplesMatrixJson.ps1
echo $sampleMatrix
$eof = [Convert]::ToBase64String((Get-Random -InputObject (0..255) -Count 15 | ForEach-Object { [byte]$_ }))
echo "matrix<<$eof" >> $env:GITHUB_OUTPUT
echo $sampleMatrix >> $env:GITHUB_OUTPUT
echo "$eof" >> $env:GITHUB_OUTPUT
samples:
needs: [generate_samples_matrix]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix: ${{fromJSON(needs.generate_samples_matrix.outputs.matrix)}}
steps:
- name: Checkout the repo
uses: actions/checkout@v6.0.2
- name: Setup .NET 8
uses: actions/setup-dotnet@v5
with:
dotnet-version: '8.0.x'
# Setting a VS_VERSION_SUFFIX variable for use by steps that are using solutions specific to VS2019 or VS2022
- name: SetVSVersionSuffix-VS2019
if: runner.os == 'Windows' && matrix.os == 'windows-2019'
run: |
"VS_VERSION_SUFFIX=vs2019" >> $env:GITHUB_ENV
- name: SetVSVersionSuffix-VS2022
if: runner.os == 'Windows' && matrix.os == 'windows-2022'
run: |
"VS_VERSION_SUFFIX=vs2022" >> $env:GITHUB_ENV
- name: Download sharpmake ${{ matrix.framework }} ${{ runner.os }}-release binaries
uses: actions/download-artifact@v8
with:
name: 'Sharpmake-${{ matrix.framework }}-${{ runner.os }}-${{ github.sha }}'
path: Sharpmake.Application/bin/Release/${{ matrix.framework }}
- name: Run sample ${{ matrix.name }} ${{ matrix.os }} ${{ matrix.framework }} ${{ matrix.configuration }}
shell: pwsh
run: |
foreach ($configuration in '${{ matrix.configurations }}'.Split(','))
{
.\RunSample.ps1 -sampleName "${{ matrix.name }}" -configuration "$configuration" -framework "${{ matrix.framework }}" -os "${{ matrix.os }}" -vsVersionSuffix "${env:VS_VERSION_SUFFIX}"
}
- name: Store MSBuild binary logs
if: ${{ failure() && runner.os == 'Windows' }}
uses: actions/upload-artifact@v7
with:
name: sharpmake-sample-msbuild-logs-${{ matrix.name }}-${{ matrix.framework }}-${{ runner.os }}-${{ github.sha }}-${{ matrix.configuration }}
path: samples/**/*.binlog