如何为 Windows 版本的 GitHub 操作设置 Bakeware 环境变量?

How to set Bakeware env vars on GitHub Actions for a Windows release?

背景

我正在尝试让 Github 操作与 Windows 和 Bakeware 一起使用,因为我正在尝试使用它创建一个版本。

但是,我遇到了环境变量问题。

代码

在 Bakeware 的设置页面中提到我们必须设置 MAKECC 环境变量:

在我的 Github 操作中,这正是我所做的(我认为):

name: build

env:
  MIX_ENV: test
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

jobs:

  build:
    name: Build on Windows
    runs-on: windows-2019
    env: 
        CC: gcc
        MAKE: make

    steps:
    - uses: actions/checkout@v2
    - uses: erlef/setup-beam@v1
      with:
        elixir-version: '1.13.x' # Define the elixir version [required]
        otp-version: '24.2.x' # Define the OTP version [required]
    
    - name: Install choco
      shell: powershell
      run: |
        Set-ExecutionPolicy -ExecutionPolicy Bypass
        Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

    - name: Install bakeware dependencies
      shell: powershell
      run: choco install -y zstandard make mingw

    - name: Install Dependencies
      shell: powershell
      run: mix deps.get
 
    - name: Run credo code analyser
      shell: powershell
      run: mix credo --strict

我什至使用 powershell 来完成它(尽管我不确定是否需要这样做)。

问题

但是我的 GitHub 操作代码返回此错误:

==> bakeware

mkdir "d:/a/market_manager/market_manager/_build/test/lib/bakeware/obj"

mkdir "d:/a/market_manager/market_manager/_build/test/lib/bakeware/launcher"

mkdir "d:/a/market_manager/market_manager/_build/test/lib/bakeware/obj/zstd/lib/decompress"

mkdir: cannot create directory 'd:/a/market_manager/market_manager/_build/test/lib/bakeware/obj/zstd/lib/decompress': No such file or directory

make: *** [Makefile:70: d:/a/market_manager/market_manager/_build/test/lib/bakeware/obj/zstd/lib/decompress] Error 1

could not compile dependency :bakeware, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile bakeware", update it with "mix deps.update bakeware" or clean it with "mix deps.clean bakeware"

** (Mix) Could not compile with "make" (exit status: 2).

它说它不能用make编译。

问题

我试过 copy/pasting 部分:

env: 
  CC: gcc
  MAKE: make

该文件中我能想到的每个部分,但我总是遇到同样的问题。

我做错了什么?

回答

在这种情况下,环境变量已正确创建和设置。问题更深,它与库本身无法创建所需的文件夹有关。

因为库使用的 make 工具需要这些文件夹,该工具自行崩溃并报告为这样,因此让我相信我的环境设置存在问题,因为我收到错误:

 (Mix) Could not compile with "make" (exit status: 2).

然而实际上,这个问题是库中的一个错误,一个已经在 master 中修复的问题: