Skip to content

Add Linux arm64 binary #23

Add Linux arm64 binary

Add Linux arm64 binary #23

Workflow file for this run

name: CI
on:
pull_request:
branches:
- master
jobs:
build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
node-version: [16.x]
os: [macOS-latest, windows-latest]
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Setup Node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Print Yarn cache
id: print-yarn-cache
run: echo "::set-output name=yarn-cache::$(yarn cache dir)"
- name: Restore Yarn cache
id: yarn-cache
uses: actions/cache@v1
with:
path: ${{ steps.print-yarn-cache.outputs.yarn-cache }}
key: ${{ matrix.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
- name: Install Yarn deps
run: yarn install
- name: Install Esy
run: npm install -g [email protected]
- name: Install Esy deps
run: esy install
- name: Print Esy cache
id: print-esy-cache
run: node .github/workflows/scripts/print-esy-cache.js
- name: Restore Esy cache
id: esy-cache
uses: actions/cache@v1
with:
path: ${{ steps.print-esy-cache.outputs.esy-cache }}
key: ${{ matrix.os }}-esy-${{ hashFiles('**/index.json') }}
- name: Build ppx
run: esy build
- name: Build lib
run: |
cd lib
yarn run build
- name: Upload artifacts
uses: actions/upload-artifact@v1
with:
name: ${{ matrix.os }}
path: _build/default/ppx/bin/bin.exe
build_linux:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
container:
image: alexfedoseev/alpine-node-yarn-esy:0.0.9
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Apply static linking patch
run: git apply linux.patch
- name: Setup Node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Print Yarn cache
id: print-yarn-cache
run: echo "::set-output name=yarn-cache::$(yarn cache dir)"
- name: Restore Yarn cache
id: yarn-cache
uses: actions/cache@v1
with:
path: ${{ steps.print-yarn-cache.outputs.yarn-cache }}
key: ${{ matrix.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
- name: Install Yarn deps
run: yarn install
- name: Install Esy deps
run: esy install
- name: Print Esy cache
id: print-esy-cache
run: node .github/workflows/scripts/print-esy-cache.js
- name: Restore Esy cache
id: esy-cache
uses: actions/cache@v1
with:
path: ${{ steps.print-esy-cache.outputs.esy-cache }}
key: ${{ matrix.os }}-esy-${{ hashFiles('**/index.json') }}
- name: Build ppx
run: esy build
- name: Build lib
run: |
cd lib
yarn run build
- name: Upload artifacts
uses: actions/upload-artifact@v1
with:
name: ${{ matrix.os }}
path: _build/default/ppx/bin/bin.exe
release:
needs:
- build
- build_linux
name: Prepare RC
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Setup Node ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: 16.x
- name: Download Linux artifacts
uses: actions/download-artifact@v1
with:
name: ubuntu-latest
path: _bin/linux
- name: Download macOS artifacts
uses: actions/download-artifact@v1
with:
name: macOS-latest
path: _bin/darwin
- name: Download Windows artifacts
uses: actions/download-artifact@v1
with:
name: windows-latest
path: _bin/windows
- name: Move artifacts
run: |
mkdir -p _release/bin
mv _bin/darwin/bin.exe _release/bin/rescript-logger-ppx-darwin-x64.exe
mv _bin/windows/bin.exe _release/bin/rescript-logger-ppx-win-x64.exe
mv _bin/linux/bin.exe _release/bin/rescript-logger-ppx-linux-x64.exe
rm -rf _bin
- name: Move lib files
run: |
mkdir -p _release/src
cp README.md _release/README.md
cp lib/bsconfig.json _release/bsconfig.json
cp -a lib/src/. _release/src/
cp .github/workflows/scripts/postinstall.js _release/postinstall.js
node .github/workflows/scripts/write-package-json.js
- name: Upload release
uses: actions/upload-artifact@v1
with:
name: release
path: _release