-
Notifications
You must be signed in to change notification settings - Fork 108
88 lines (77 loc) · 3.17 KB
/
msbuild.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# 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:
runs-on: windows-latest
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@v2
with:
name: binaries
# Includes `minipatch` as that's needed by the test scripts
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
#test-run:
# needs: build
# strategy:
# fail-fast: false
# matrix:
# rustver: ["1.29", "1.39", "1.19", "1.54"]
# runs-on: windows-latest
# 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@v2
# with:
# name: binaries
# path: bin
# - name: Download rust source
# shell: powershell
# run: |
# Invoke-WebRequest -Method Get -Uri https://static.rust-lang.org/dist/rustc-$RUSTC_VERSION-src.tar.gz -UseBasicParsing
# "c:\Program Files\7-Zip\7z.exe" x rustc-$RUSTC_VERSION-src.tar.gz
# - name: Build
# run: vsproject\run_hello_${{ matrix.rustver }}.bat