Skip to content

Codegen C - Turn down gcc optimisation level to work around #347 #238

Codegen C - Turn down gcc optimisation level to work around #347

Codegen C - Turn down gcc optimisation level to work around #347 #238

Workflow file for this run

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
name: MSBuild
on:
push:
pull_request:
branches: [ "master" ]
env:
# Path to the solution file relative to the root of the project.
SOLUTION_FILE_PATH: vsproject/mrustc.sln
# Configuration type to build.
# You can convert this to a build matrix if you need coverage of multiple configuration types.
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
BUILD_CONFIGURATION: Release
permissions:
contents: read
jobs:
build:
# Windows 2019 has VC140, -latest (-2022) does not
runs-on: windows-2019
steps:
# https://github.com/actions/runner-images/issues/842#issuecomment-643382166
# - Win8.1 SDK is (currently) used by mrustc
- name: Install Windows 8.1 SDK
shell: powershell
run: |
Invoke-WebRequest -Method Get -Uri https://go.microsoft.com/fwlink/p/?LinkId=323507 -OutFile sdksetup.exe -UseBasicParsing
Start-Process -Wait sdksetup.exe -ArgumentList "/q", "/norestart", "/features", "OptionId.WindowsDesktopSoftwareDevelopmentKit", "OptionId.NetFxSoftwareDevelopmentKit"
- uses: actions/checkout@v3
- name: Add MSBuild to PATH
uses: microsoft/[email protected]
- name: Restore NuGet packages
working-directory: ${{env.GITHUB_WORKSPACE}}
run: nuget restore ${{env.SOLUTION_FILE_PATH}}
- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
# Add additional options to the MSBuild command line here (like platform or verbosity level).
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
run: msbuild /m /p:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}}
- name: Save Artifacts
uses: actions/upload-artifact@v4
with:
name: binaries
# Includes `minipatch` as that's needed by the test scripts
# Needs `zlib[1].dll` for mrustc to run
path: |
vsproject/x64/${{env.BUILD_CONFIGURATION}}/minicargo.exe
vsproject/x64/${{env.BUILD_CONFIGURATION}}/mrustc.exe
vsproject/x64/${{env.BUILD_CONFIGURATION}}/testrunner.exe
vsproject/x64/${{env.BUILD_CONFIGURATION}}/minipatch.exe
vsproject/x64/${{env.BUILD_CONFIGURATION}}/mir_opt_test.exe
vsproject/x64/${{env.BUILD_CONFIGURATION}}/zlib.dll
vsproject/x64/${{env.BUILD_CONFIGURATION}}/zlib1.dll
test-run:
needs: build
strategy:
fail-fast: false
matrix:
#rustver: ["1.29", "1.39", "1.19", "1.54"]
# Note: Only run 1.54, to save on time
rustver: ["1.54", "1.74"]
runs-on: windows-2019 # need compiler for C codegen, might as well use the same
env:
RUSTC_VERSION: ${{ matrix.rustver }}.0
MRUSTC_TARGET_VER: ${{ matrix.rustver }}
OUTDIR_SUF: -${{ matrix.rustver }}.0
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download all workflow run artifacts
uses: actions/download-artifact@v4
with:
name: binaries
path: vsproject/x64/${{env.BUILD_CONFIGURATION}}
- uses: TheMrMilchmann/setup-msvc-dev@v2
with:
arch: x64
- name: Download rust source
shell: powershell
run: |
Invoke-WebRequest -Method Get -Uri https://static.rust-lang.org/dist/rustc-${{matrix.rustver}}.0-src.tar.gz -OutFile rustc-${{matrix.rustver}}.0-src.tar.gz -UseBasicParsing
# Chain 7z invocations to extract the tarball directly - see https://superuser.com/a/546694
- name: Extract rust source
shell: cmd
run: |
"c:\Program Files\7-Zip\7z.exe" x rustc-${{ matrix.rustver }}.0-src.tar.gz -so | "c:\Program Files\7-Zip\7z.exe" x -aoa -si -ttar
- name: Build
run: |
cd vsproject
.\run_hello_Pick.cmd ${{ matrix.rustver }}
.\run_local_tests_Pick.cmd ${{ matrix.rustver }}