Skip to content

Build and Upload Binaries #207

Build and Upload Binaries

Build and Upload Binaries #207

Workflow file for this run

name: Build and Upload Binaries
on:
workflow_dispatch:
inputs:
release_type:
description: Version bump type
required: true
default: patch
type: choice
options:
- patch
- minor
- major
permissions:
contents: write
env:
CARGO_TERM_COLOR: always
jobs:
create_release:
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
release_id: ${{ steps.create_release.outputs.id }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Create GitHub Release
id: create_release
uses: zendesk/action-create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
auto_increment_type: ${{ inputs.release_type }}
prerelease: false
draft: false
tag_schema: semantic
build:
needs: create_release
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, ubuntu-24.04-arm, macos-15-intel, macos-latest, windows-latest]
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
binary_name: helix-x86_64-unknown-linux-gnu
- os: ubuntu-24.04-arm
target: aarch64-unknown-linux-gnu
binary_name: helix-aarch64-unknown-linux-gnu
- os: macos-15-intel
target: x86_64-apple-darwin
binary_name: helix-x86_64-apple-darwin
- os: macos-latest
target: aarch64-apple-darwin
binary_name: helix-aarch64-apple-darwin
- os: windows-latest
target: x86_64-pc-windows-msvc
binary_name: helix-x86_64-pc-windows-msvc.exe
steps:
- uses: actions/checkout@v3
- name: Build
run: |
cd helix-cli
cargo build --release --target ${{ matrix.target }}
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: target/${{ matrix.target }}/release/${{ matrix.os == 'windows-latest' && 'helix.exe' || 'helix' }}
asset_name: ${{ matrix.binary_name }}
asset_content_type: application/octet-stream
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}