All Projects → msys2 → Setup Msys2

msys2 / Setup Msys2

Licence: mit
GitHub Action to setup MSYS2 (MSYS, MINGW64 and/or MINGW32)

Programming Languages

javascript
184084 projects - #8 most used programming language
bash
514 projects

Projects that are alternatives of or similar to Setup Msys2

Wflow
🐆 EXPERIMENTAL -- Runs GitHub Actions workflows locally (local) -- Don't run your YAML like a 🐪
Stars: ✭ 187 (+139.74%)
Mutual labels:  workflow, ci
tip
GitHub Action to keep a 'tip' pre-release always up-to-date
Stars: ✭ 18 (-76.92%)
Mutual labels:  workflow, ci
Pipeline
Node-based automation server
Stars: ✭ 212 (+171.79%)
Mutual labels:  workflow, ci
ci-notice
😱 Notify you when CI fails.
Stars: ✭ 25 (-67.95%)
Mutual labels:  workflow, ci
jekyll-deploy-action
🪂 A Github Action to deploy the Jekyll site conveniently for GitHub Pages.
Stars: ✭ 162 (+107.69%)
Mutual labels:  workflow, ci
Pipeline
Pipeline is a package to build multi-staged concurrent workflows with a centralized logging output.
Stars: ✭ 433 (+455.13%)
Mutual labels:  workflow, ci
Atacseq
ATAC-seq peak-calling, QC and differential analysis pipeline
Stars: ✭ 72 (-7.69%)
Mutual labels:  workflow
Alfred Open With Vscode Workflow
Alfred 3 workflow for opening files or folders in Visual Studio Code.
Stars: ✭ 74 (-5.13%)
Mutual labels:  workflow
Loonflow
基于django的工作流引擎,工单(a workflow engine base on django python)
Stars: ✭ 1,153 (+1378.21%)
Mutual labels:  workflow
Alfred3 Workflow Currencyx
Most convinent currencies converting tool for alfred3
Stars: ✭ 68 (-12.82%)
Mutual labels:  workflow
Teamcity Dotnet Plugin
TeamCity plugin for .NET Core projects
Stars: ✭ 77 (-1.28%)
Mutual labels:  ci
Ocurrent
Keeps things up-to-date (a CI/CD pipeline OCaml eDSL)
Stars: ✭ 76 (-2.56%)
Mutual labels:  ci
Flowr
Robust and efficient workflows using a simple language agnostic approach
Stars: ✭ 73 (-6.41%)
Mutual labels:  workflow
Theflow
Workflow automation library for .NET
Stars: ✭ 72 (-7.69%)
Mutual labels:  workflow
Fbi
Node.js workflow tool
Stars: ✭ 74 (-5.13%)
Mutual labels:  workflow
Alfred Dict.cc Workflow
Alfred 3/4 workflow to get translations from dict.cc
Stars: ✭ 69 (-11.54%)
Mutual labels:  workflow
Nipype tutorial
Learn Nipype with these tutorial notebooks - go here to see them online -->
Stars: ✭ 76 (-2.56%)
Mutual labels:  workflow
Automator
Various Automator and AppleScript workflow and scripts for simplifying life
Stars: ✭ 68 (-12.82%)
Mutual labels:  workflow
Ic
去哪儿公司内部CI、CD以及devops体系建设过程中使用的消息系统和数据中心。由于其基于HTTP协议的特性,具有跨平台、跨语言的优点。而devops体系搭建中,会引入各种开源工具,这些工具的语言差异也很大。基于IC,我们不仅快速实现了流程自动化,而且系统解耦,自动化进程大大提高。
Stars: ✭ 73 (-6.41%)
Mutual labels:  ci
Agilework
可视化低代码快速开发平台,面向业务、企业管理系统定制开发平台和应用平台,包括设计器、应用端。提供业务配置和集成开发能力,用户通过可视化拖拉拽配置式操作即可快速构建出能同时在PC和移动端运行的各类管理系统,对于企业客户的信息系统在管理模式、业务流程、表单界面、数据可视化展示、IoT管控等个性化需求,可以通过设计器,快速的进行个性化配置。并支持企业微信,公众号,钉钉等移动集成,实现用户跨区域移动办公。从而构建企业个性化的行业应用、集成应用和复杂的业务报表。
Stars: ✭ 76 (-2.56%)
Mutual labels:  workflow

'action' workflow Status

Setup MSYS2

setup-msys2 is a JavaScript GitHub Action (GHA) to setup an MSYS2 environment (i.e. MSYS, MINGW32 and/or MINGW64 shells) using the GHA toolkit for automatic caching.

Context

MSYS2 is available by default in windows-latest virtual environment for GitHub Actions, located at C:\msys64. Moreover, there is work in progress for making bash default to MSYS2 (see actions/virtual-environments#1525). However, the default installation has some caveats at the moment (see actions/virtual-environments#1572):

  • It is updated every ~10 days.
  • It includes a non-negligible set of pre-installed packages. As a result, update time can be up to 10 min.
  • Caching of installation packages is not supported.
  • MSYS2/MINGW are neither added to the PATH nor available as a custom shell option.

setup-msys2 works around those constraints:

  • Using option release: false, the default installation is used, but automatic caching is supported and a custom entrypoint is provided.
  • By default (release: true), setup-msys2 downloads and extracts the latest tarball available at repo.msys2.org/distrib/x86_64, a clean and up-to-date environment is set up in a temporary location, and a custom entrypoint (msys2) is provided. Hence, the overhead of updating pre-installed but unnecessary packages is avoided.

Therefore, usage of this Action is recommended to all MSYS2 users of GitHub Actions, since caching and the custom entrypoint are provided regardless of option release.

Usage

  - uses: msys2/[email protected]

Then, for scripts:

  - shell: msys2 {0}
    run: |
      uname -a

It is also possible to execute specific commands from cmd/powershell scripts/snippets. In order to do so, -c is required:

  - shell: powershell
    run: msys2 -c 'uname -a'
  - shell: cmd
    run: msys2 -c 'uname -a'

Default shell

In order to reduce verbosity, it is possible to set msys2 as the default shell. For example:

  defaults:
    run:
      shell: msys2 {0}
  steps:
  - uses: msys2/[email protected]
    with:
      update: true
      install: >-
        base-devel
        git
  #- run: git config --global core.autocrlf input
  #  shell: bash
  - uses: actions/[email protected]
  - run: git describe --dirty

Note that setting autocrlf is required in specific use cases only. See actions/checkout#250.

Build matrix

It is common to test some package/tool on MINGW32 (32 bit) and MINGW64 (64 bit), which typically requires installing different sets of packages through option install. GitHub Actions' strategy and matrix fields allow to do so, as explained in docs.github.com: Configuring a build matrix and docs.github.com: jobs.<job_id>.strategy.matrix. See, for example:

Find further details at #40 and #102.

Options

msystem

By default, MSYSTEM is set to MINGW64. However, an optional parameter named msystem is supported, which expects MSYS, MINGW64 or MINGW32. For example:

  - uses: msys2/[email protected]
    with:
      msystem: MSYS

Furthermore, the environment variable can be overridden. This is useful when multiple commands need to be executed in different contexts. For example, in order to build a PKGBUILD file and then test the installed artifact:

  - uses: msys2/[email protected]
    with:
      msystem: MSYS
  - shell: msys2 {0}
    run: |
      makepkg-mingw -sCLfc --noconfirm --noprogressbar
      pacman --noconfirm -U mingw-w64-*-any.pkg.tar.xz
  - run: |
      set MSYSTEM=MINGW64
      msys2 -c '<command to test the package>'

path-type

Defines which parts of the Windows $env:PATH environment variable leak into the MSYS2 environment. Allowed values:

  • strict: do not inherit anything from $env:PATH.
  • minimal (default): only inherit the default Windows paths from $env:PATH (so that cmd.exe and powershell.exe are available for example).
  • inherit: inherit everything; warning: this can lead to interference with other tools installed on the system.
  - uses: msys2/[email protected]
    with:
      path-type: minimal

This option corresponds to the MSYS2_PATH_TYPE setting in MSYS2; hence it can be set per step through env. See msys2/MSYS2-packages: filesystem/profile for further details about the configuration of each option.

release

By default (true), retrieve and extract base installation from upstream GitHub Releases. If set to false, the installation available in the virtual environment is used:

  - uses: msys2/[email protected]
    with:
      release: false

update

By default, the installation is not updated; hence package versions are those of the installation tarball. By setting option update to true, the action will try to update the runtime and packages cleanly:

  - uses: msys2/[email protected]
    with:
      update: true

install

Installing additional packages after updating the system is supported through option install. The package or list of packages are installed through pacman --noconfirm -S --needed.

  - uses: msys2/[email protected]
    with:
      update: true
      install: >-
        git
        base-devel
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].