GitHub Actions で Visutal Studio 2022 の VC (Hello World) プロジェクトをコンパイル

# はじめに
GitHub Actions で Visual Studio 2022 の VC プロジェクトをコンパイルするためのメモ。
30年ぶりに Visual C++ 環境をさわったおっさんが、 IDE 環境の設定内容も含めて忘れないようにメモをしておく。

達人級の人のメモが多いので試行錯誤して、まずはHello World のプロジェクトをコンパイルする。

# 準備
Visual Studio 2022 Community をダウンロードをしてインストールする。

https://visualstudio.microsoft.com/ja/vs/community/


# プロジェクト作成とコンパイル

## プロジェクトの作成

[ファイル]メニューにある [新規作成] - [プロジェクト] をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/cc1d25ed-5cf2-dfab-4a78-1c2169218152.png)

言語から「C++」を選択し [コンソールアプリ] を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/a9276f28-770d-23b9-2f30-f1c3a5c06893.png)

以下の3つを設定
* プロジェクト名
* 場所 (保存場所)
* ソリューション名

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/42df0542-3db3-cc12-0f92-4b1d50f84dc3.png)

勝手に HelloWorld の C言語のソースが出来上がる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/2c26a54c-3dcb-8d47-af45-4d454c176cb3.png)

## コンパイル (デバッグ実行)
メニューの[デバッグ] から [デバッグの開始] を選択すると実行される。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/b7a723ed-8a70-92b5-c74d-3701180b7151.png)





# GitHub のレポジトリ登録
上記で作成をしたプロジェクトを、そのまま GitHub に登録(プッシュ) すると以下のようになる。

https://github.com/takeiseki/visualc/tree/main/project/HelloWorld


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/71d0b1eb-0d9f-b61c-44f3-48eb1bc2b267.png)

# GitHub Actions でコンパイル

左上にある New workflow をクリックして GitHub Actions のワークフローのテンプレートを用意。
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/8acac9c9-6e91-3159-e31d-fd6b5042fffd.png)

MSBuild baseed projects を選択すると VisualC++ の Workflow プロジェクトが開始される。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/e0374e81-dd00-911f-1001-efe2a8f0cc09.png)

ビルド用の GitHub Actions のワークフロー設定が自動で出来上がるので、これを修正する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/4a04361d-c7c7-e312-141e-7aee17aca36d.png)

以下のワークフローのファイルをレポジトリに登録する。

    name: MSBuild
    
    on:
        workflow_dispatch:
        branches:
    - main
        push:
        branches: [ "main" ]
    pull_request:
        branches: [ "main" ]

    env:
        SOLUTION_FILE_PATH: .

    build-matrix
        BUILD_CONFIGURATION: Release

    permissions:
        contents: read

    jobs:

    build:
        runs-on: windows-latest


    steps:
    - uses: actions/checkout@v3

    - name: Add MSBuild to PATH
      uses: microsoft/setup-msbuild@v1.0.2


    - name: build app
      run: |
        msbuild -version
        msbuild project\HelloWorld\HelloWorld\HelloWorld.vcxproj -t:rebuild -verbosity:diag -property:Configuration=Release

    - name: exec Hello World
      run: |
        msbuild -version
        dir project\HelloWorld\x64\Debug
        cd project\HelloWorld\x64\Debug
        HelloWorld.exe
      shell: cmd


* [name: build app] セクション
** msbuild コマンドを実行してプロジェクトをコンパイル
* [exec Hello World]セクション
** exe ファイルをコマンドプロンプトで実行 ( [shell: cmd] と記載すると、コマンドラインでの実行となる。pwsh として powershell コマンドプロンプトで実行させると、通常、画面上でコマンドの標準出力がでない。)

上記の（横）メニューにある Actions を選択する。そして、 左ペインの Actions で MSBuild を選択をして、右ペインの [Run Workflow] をクリックし、さらに [Run Workflow] をクリック


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/24a0b9ab-c839-3a3d-a74a-ddb4ae2a867b.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/087eba39-5d7f-adcd-c905-bdbbec1e3f5a.png)

GitHub Actions の Workflow が実行される。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/51697284-a0d3-7e85-58d2-eba00e471682.png)

# Work Flow の実行確認

実行中の WorkFlow をクリックすると name セクションごとに実行結果が出てくる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/3d240d72-57d0-a381-a2f5-415780d96306.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304109/f7dcfb98-98db-fa6a-8eaf-0463c9bf9d0e.png)