mirror of
https://github.com/ilammy/msvc-dev-cmd.git
synced 2026-09-06 21:57:19 +08:00
Allow repeated invocation (#37)
* Workaround for repeated invocations As noted in the comment, repeated invocations of this action might have caused environment variables to overflow. This cute hack avoid this, allowing to reconfigure environment. * Note caveats in README While this approach mostly works, I still have reservations so let's leave some cautionary notes. * Test repeated reconfiguration on CI Well, let's build our "Hello, world!" four times, for four different architectures, because why not.
This commit is contained in:
@@ -87,6 +87,48 @@ If you experience compilation errors where `link` complains about unreasonable c
|
||||
Recommended workaround is to remove `/usr/bin/link` if that interferes with your builds.
|
||||
If this is not acceptable, please file an issue, then we'll figure out something better.
|
||||
|
||||
### Reconfiguration
|
||||
|
||||
You can invoke `ilammy/msvc-dev-cmd` multiple times during your jobs with different inputs
|
||||
to reconfigure the environment for building with different settings
|
||||
(e.g., to target multiple architectures).
|
||||
|
||||
```yaml
|
||||
jobs:
|
||||
release:
|
||||
steps:
|
||||
# ...
|
||||
- name: Configure build for amd64
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: amd64
|
||||
|
||||
- run: build # (for amd64)
|
||||
|
||||
- name: Configure build for x86
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: amd64_x86
|
||||
|
||||
- run: build # (for x86)
|
||||
|
||||
- name: Configure build for ARM64
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: amd64_arm64
|
||||
|
||||
- run: build # (for ARM64)
|
||||
|
||||
# ...
|
||||
```
|
||||
|
||||
This mostly works but it's not really recommended
|
||||
since Developer Command Prompt was not meant for recursive reconfiguration.
|
||||
That said, if it does not work for you, please file an issue.
|
||||
|
||||
Consider using [`strategy.matrix`](https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix)
|
||||
to execute different build configuration in parallel, independent environments.
|
||||
|
||||
## License
|
||||
|
||||
MIT, see [LICENSE](LICENSE).
|
||||
|
||||
Reference in New Issue
Block a user