Create Build Workflow #1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Release ODIN CLI Tool | |
on: | |
push: | |
tags: | |
- 'v*.*.*' | |
jobs: | |
build-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Deno | |
uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.x | |
- name: Build for Linux | |
run: deno task build | |
env: | |
DENO_BUILD_TARGET: x86_64-unknown-linux-gnu | |
- name: Upload Linux Binary | |
uses: actions/upload-artifact@v3 | |
with: | |
name: odin-linux | |
path: odin | |
build-macos-x86: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Deno | |
uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.x | |
- name: Build for macOS x86 | |
run: deno task build | |
env: | |
DENO_BUILD_TARGET: x86_64-apple-darwin | |
- name: Upload macOS Binary | |
uses: actions/upload-artifact@v3 | |
with: | |
name: odin-macos-x86 | |
path: odin | |
build-macos-arm: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Deno | |
uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.x | |
- name: Build for macOS Apple Silicon | |
run: deno task build | |
env: | |
DENO_BUILD_TARGET: aarch64-apple-darwin | |
- name: Upload macOS Binary | |
uses: actions/upload-artifact@v3 | |
with: | |
name: odin-macos-arm | |
path: odin | |
build-windows: | |
runs-on: windows-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Deno | |
uses: denoland/setup-deno@v1 | |
with: | |
deno-version: v1.x | |
- name: Build for Windows | |
run: deno task build | |
env: | |
DENO_BUILD_TARGET: x86_64-pc-windows-msvc | |
- name: Upload Windows Binary | |
uses: actions/upload-artifact@v3 | |
with: | |
name: odin-windows.exe | |
path: odin.exe | |
release: | |
runs-on: ubuntu-latest | |
needs: [build-linux, build-macos-x86, build-macos-arm, build-windows] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Download Linux Binary | |
uses: actions/download-artifact@v3 | |
with: | |
name: odin-linux | |
path: . | |
- name: Download macOS Binary for Intel | |
uses: actions/download-artifact@v3 | |
with: | |
name: odin-macos-x86 | |
path: . | |
- name: Download macOS Binary for Apple Silicon | |
uses: actions/download-artifact@v3 | |
with: | |
name: odin-macos-arm | |
path: . | |
- name: Download Windows Binary | |
uses: actions/download-artifact@v3 | |
with: | |
name: odin-windows.exe | |
path: . | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: Release ${{ github.ref }} | |
draft: false | |
prerelease: false | |
- name: Upload Release Asset Linux | |
uses: actions/upload-release-asset@v3 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./odin | |
asset_name: odin-linux | |
asset_content_type: application/octet-stream | |
- name: Upload Release Asset macOS Intel | |
uses: actions/upload-release-asset@v3 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./odin | |
asset_name: odin-macos-x86 | |
asset_content_type: application/octet-stream | |
- name: Upload Release Asset macOS Apple Silicon | |
uses: actions/upload-release-asset@v3 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./odin | |
asset_name: odin-macos-arm | |
asset_content_type: application/octet-stream | |
- name: Upload Release Asset Windows | |
uses: actions/upload-release-asset@v3 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: ./odin.exe | |
asset_name: odin-windows.exe | |
asset_content_type: application/octet-stream |