如何为 Windows 版本的 GitHub 操作设置 Bakeware 环境变量?
How to set Bakeware env vars on GitHub Actions for a Windows release?
背景
我正在尝试让 Github 操作与 Windows 和 Bakeware 一起使用,因为我正在尝试使用它创建一个版本。
但是,我遇到了环境变量问题。
代码
在 Bakeware 的设置页面中提到我们必须设置 MAKE
和 CC
环境变量:
在我的 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 中修复的问题:
背景
我正在尝试让 Github 操作与 Windows 和 Bakeware 一起使用,因为我正在尝试使用它创建一个版本。
但是,我遇到了环境变量问题。
代码
在 Bakeware 的设置页面中提到我们必须设置 MAKE
和 CC
环境变量:
在我的 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 中修复的问题: