Skip to content

Commit

Permalink
use job matrix
Browse files Browse the repository at this point in the history
  • Loading branch information
echo-bravo-yahoo committed Oct 25, 2024
1 parent b521bdc commit f7557fb
Showing 1 changed file with 25 additions and 112 deletions.
137 changes: 25 additions & 112 deletions .github/workflows/build-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,132 +6,45 @@ on:
branches: [build]

jobs:
build-binary-on-ubuntu:
name: Build binary (SEA) for Linux
runs-on: ubuntu-latest
build-binaries:
name: Build binaries

strategy:
matrix:
runner: [macos-13, macos-latest, ubuntu-latest, windows-latest]
node: [22.x]
include:
- runner: macos-13
os: mac
arch: x64
- runner: macos-latest
os: mac
arch: arm
- runner: ubuntu-latest
os: linux
arch: x64
- runner: windows-latest
os: windows
arch: x64

runs-on: ${{ matrix.runner }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22.x"
node-version: ${{ matrix.node }}
- run: npm ci
- name: Build binary
run: npm run build
- uses: actions/upload-artifact@v4
with:
# Name of the artifact to upload.
# Optional. Default is 'artifact'
name: fauna-shell-linux
name: fauna-shell-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.node }}

# A file, directory or wildcard pattern that describes what to upload
# Required.
path: dist/fauna

# The desired behavior if no files are found using the provided path.
# Available Options:
# warn: Output a warning but do not fail the action
# error: Fail the action with an error message
# ignore: Do not output any warnings or errors, the action does not fail
# Optional. Default is 'warn'
if-no-files-found: error

# Duration after which artifact will expire in days. 0 means using default retention.
# Minimum 1 day.
# Maximum 90 days unless changed from the repository settings page.
# Optional. Defaults to repository settings.
retention-days: 1

# The level of compression for Zlib to be applied to the artifact archive.
# The value can range from 0 to 9.
# For large files that are not easily compressed, a value of 0 is recommended for significantly faster uploads.
# Optional. Default is '6'
compression-level: 6

# If true, an artifact with a matching name will be deleted before a new one is uploaded.
# If false, the action will fail if an artifact for the given name already exists.
# Does not fail if the artifact does not exist.
# Optional. Default is 'false'
overwrite: true

# Whether to include hidden files in the provided path in the artifact
# The file contents of any hidden files in the path should be validated before
# enabled this to avoid uploading sensitive information.
# Optional. Default is 'false'
include-hidden-files: false

build-binary-on-windows:
name: Build binary (SEA) for Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22.x"
- run: npm ci
- name: Build binary
run: npm run build
- uses: actions/upload-artifact@v4
with:
# Name of the artifact to upload.
# Optional. Default is 'artifact'
name: fauna-shell-windows

# A file, directory or wildcard pattern that describes what to upload
# Required.
path: dist\fauna.exe

# The desired behavior if no files are found using the provided path.
# Available Options:
# warn: Output a warning but do not fail the action
# error: Fail the action with an error message
# ignore: Do not output any warnings or errors, the action does not fail
# Optional. Default is 'warn'
if-no-files-found: error

# Duration after which artifact will expire in days. 0 means using default retention.
# Minimum 1 day.
# Maximum 90 days unless changed from the repository settings page.
# Optional. Defaults to repository settings.
retention-days: 1

# The level of compression for Zlib to be applied to the artifact archive.
# The value can range from 0 to 9.
# For large files that are not easily compressed, a value of 0 is recommended for significantly faster uploads.
# Optional. Default is '6'
compression-level: 6

# If true, an artifact with a matching name will be deleted before a new one is uploaded.
# If false, the action will fail if an artifact for the given name already exists.
# Does not fail if the artifact does not exist.
# Optional. Default is 'false'
overwrite: true

# Whether to include hidden files in the provided path in the artifact
# The file contents of any hidden files in the path should be validated before
# enabled this to avoid uploading sensitive information.
# Optional. Default is 'false'
include-hidden-files: false

build-binary-on-mac:
name: Build binary (SEA) for Mac
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22.x"
- run: npm ci
- name: Build binary
run: npm run build
- uses: actions/upload-artifact@v4
with:
# Name of the artifact to upload.
# Optional. Default is 'artifact'
name: fauna-shell-mac

# A file, directory or wildcard pattern that describes what to upload
# Required.
path: dist/fauna
path: ${{ matrix.os == 'windows' && 'dist/fauna' || 'dist\fauna.exe' }}

# The desired behavior if no files are found using the provided path.
# Available Options:
Expand Down

0 comments on commit f7557fb

Please sign in to comment.