From 1daca11776c1499b6b60010e088971dad756925a Mon Sep 17 00:00:00 2001 From: Matthew Fluet Date: Fri, 20 Dec 2024 12:40:46 -0500 Subject: [PATCH] Extract `Install dependencies` composite action --- .github/actions/install-deps/action.yml | 71 +++++++++++++++++++++++++ .github/workflows/ci.yml | 58 +------------------- 2 files changed, 73 insertions(+), 56 deletions(-) create mode 100644 .github/actions/install-deps/action.yml diff --git a/.github/actions/install-deps/action.yml b/.github/actions/install-deps/action.yml new file mode 100644 index 000000000..aa3a1e799 --- /dev/null +++ b/.github/actions/install-deps/action.yml @@ -0,0 +1,71 @@ +name: 'Install dependencies' +description: 'Install dependencies to bootstrap MLton' +defaults: + run: +runs: + using: "composite" + steps: + - name: Install dependencies (ubuntu) + if: ${{ startsWith(matrix.runner, 'ubuntu') }} + shell: 'bash' + run: | + # Install dependencies (ubuntu) + sudo apt-get update + sudo apt-get install libgmp-dev + if [[ "${{ matrix.codegen }}" == "llvm" ]]; then sudo apt-get install llvm; fi + mkdir boot && cd boot + curl -O -L https://github.com/MLton/mlton/releases/download/on-20210117-release/mlton-20210117-1.amd64-linux-glibc2.31.tgz + tar xzf mlton-20210117-1.amd64-linux-glibc2.31.tgz --exclude='*/share' + mv mlton-20210117-1.amd64-linux-glibc2.31/* . + rmdir mlton-20210117-1.amd64-linux-glibc2.31 + + - name: Install dependencies (macos (amd64)) + if: ${{ matrix.runner == 'macos-13' }} + shell: 'bash' + run: | + # Install dependencies (macos (amd64)) + # brew update + brew install -q gmp + echo "WITH_GMP_DIR=/usr/local" >> $GITHUB_ENV + if [[ "${{ matrix.codegen }}" == "llvm" ]]; then brew install llvm; echo "$(brew --prefix llvm)/bin" >> $GITHUB_PATH; fi + mkdir boot && cd boot + curl -O -L https://github.com/MLton/mlton/releases/download/on-20210117-release/mlton-20210117-1.amd64-darwin-19.6.gmp-homebrew.tgz + tar xzf mlton-20210117-1.amd64-darwin-19.6.gmp-homebrew.tgz --exclude='*/share' + mv mlton-20210117-1.amd64-darwin-19.6.gmp-homebrew/* . + rmdir mlton-20210117-1.amd64-darwin-19.6.gmp-homebrew + + - name: Install dependencies (macos (arm64)) + if: ${{ matrix.runner == 'macos-14' }} + shell: 'bash' + run: | + # Install dependencies (macos (arm64)) + # brew update + brew install -q gmp + echo "WITH_GMP_DIR=/opt/homebrew" >> $GITHUB_ENV + if [[ "${{ matrix.codegen }}" == "llvm" ]]; then brew install llvm; echo "$(brew --prefix llvm)/bin" >> $GITHUB_PATH; fi + mkdir boot && cd boot + curl -O -L https://projects.laas.fr/tina/software/mlton-20210117-1.arm64-darwin-21.6-gmp-static.tgz + tar xzf mlton-20210117-1.arm64-darwin-21.6-gmp-static.tgz --exclude='*/share' + mv mlton-20210117-1.arm64-darwin-21.6-gmp-static/* . + rmdir mlton-20210117-1.arm64-darwin-21.6-gmp-static + + - name: Install msys2 (windows) + if: ${{ startsWith(matrix.runner, 'windows') }} + uses: msys2/setup-msys2@v2 + with: + update: false + install: >- + base-devel + git + pactoys + - name: Install dependencies (windows) + if: ${{ startsWith(matrix.runner, 'windows') }} + shell: 'msys2 {0}' + run: | + # Install dependencies (windows) + pacboy --noconfirm -S --needed gcc:p gmp-devel: + mkdir boot && cd boot + curl -O -L https://github.com/MLton/mlton/releases/download/on-20200817-release/mlton-20200817-amd64-mingw.tgz + tar xzf mlton-20200817-amd64-mingw.tgz --exclude='*/share' + mv mlton-20200817-amd64-mingw/* . + rmdir mlton-20200817-amd64-mingw diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9c5cb0525..f71d23a6c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,62 +48,8 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Install dependencies (ubuntu) - if: ${{ startsWith(matrix.runner, 'ubuntu') }} - run: | - sudo apt-get update - sudo apt-get install libgmp-dev - if [[ "${{ matrix.codegen }}" == "llvm" ]]; then sudo apt-get install llvm; fi - mkdir boot && cd boot - curl -O -L https://github.com/MLton/mlton/releases/download/on-20210117-release/mlton-20210117-1.amd64-linux-glibc2.31.tgz - tar xzf mlton-20210117-1.amd64-linux-glibc2.31.tgz --exclude='*/share' - mv mlton-20210117-1.amd64-linux-glibc2.31/* . - rmdir mlton-20210117-1.amd64-linux-glibc2.31 - - - name: Install dependencies (macos (amd64)) - if: ${{ matrix.runner == 'macos-13' }} - run: | - # brew update - brew install -q gmp - echo "WITH_GMP_DIR=/usr/local" >> $GITHUB_ENV - if [[ "${{ matrix.codegen }}" == "llvm" ]]; then brew install llvm; echo "$(brew --prefix llvm)/bin" >> $GITHUB_PATH; fi - mkdir boot && cd boot - curl -O -L https://github.com/MLton/mlton/releases/download/on-20210117-release/mlton-20210117-1.amd64-darwin-19.6.gmp-homebrew.tgz - tar xzf mlton-20210117-1.amd64-darwin-19.6.gmp-homebrew.tgz --exclude='*/share' - mv mlton-20210117-1.amd64-darwin-19.6.gmp-homebrew/* . - rmdir mlton-20210117-1.amd64-darwin-19.6.gmp-homebrew - - - name: Install dependencies (macos (arm64)) - if: ${{ matrix.runner == 'macos-14' }} - run: | - # brew update - brew install -q gmp - echo "WITH_GMP_DIR=/opt/homebrew" >> $GITHUB_ENV - if [[ "${{ matrix.codegen }}" == "llvm" ]]; then brew install llvm; echo "$(brew --prefix llvm)/bin" >> $GITHUB_PATH; fi - mkdir boot && cd boot - curl -O -L https://projects.laas.fr/tina/software/mlton-20210117-1.arm64-darwin-21.6-gmp-static.tgz - tar xzf mlton-20210117-1.arm64-darwin-21.6-gmp-static.tgz --exclude='*/share' - mv mlton-20210117-1.arm64-darwin-21.6-gmp-static/* . - rmdir mlton-20210117-1.arm64-darwin-21.6-gmp-static - - - name: Install msys2 (windows) - if: ${{ startsWith(matrix.runner, 'windows') }} - uses: msys2/setup-msys2@v2 - with: - update: false - install: >- - base-devel - git - pactoys - - name: Install dependencies (windows) - if: ${{ startsWith(matrix.runner, 'windows') }} - run: | - pacboy --noconfirm -S --needed gcc:p gmp-devel: - mkdir boot && cd boot - curl -O -L https://github.com/MLton/mlton/releases/download/on-20200817-release/mlton-20200817-amd64-mingw.tgz - tar xzf mlton-20200817-amd64-mingw.tgz --exclude='*/share' - mv mlton-20200817-amd64-mingw/* . - rmdir mlton-20200817-amd64-mingw + - name: Install dependencies + uses: ./.github/actions/install-deps - name: Check versions run: |