summaryrefslogtreecommitdiff
path: root/.github/workflows/release.yml
blob: 84d340d171fb25fc8566faef46757f8cbc837f55 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: Release

on:
  push:
    tags:
      - 'v*'

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    name: Build ${{ matrix.target }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        include:
          - target: x86_64-unknown-linux-gnu
            os: ubuntu-latest
            artifact_name: makima
            asset_name: makima-${{ github.ref_name }}-linux-x86_64
          - target: x86_64-apple-darwin
            os: macos-15-intel
            artifact_name: makima
            asset_name: makima-${{ github.ref_name }}-macos-x86_64
          - target: aarch64-apple-darwin
            os: macos-14
            artifact_name: makima
            asset_name: makima-${{ github.ref_name }}-macos-arm64

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Install Rust toolchain
        uses: dtolnay/rust-toolchain@nightly
        with:
          targets: ${{ matrix.target }}

      - name: Install dependencies (Linux)
        if: runner.os == 'Linux'
        run: |
          sudo apt-get update
          sudo apt-get install -y pkg-config libssl-dev

      - name: Build release binary
        working-directory: makima
        run: cargo build --release --target ${{ matrix.target }}

      - name: Package binary
        shell: bash
        run: |
          cd target/${{ matrix.target }}/release
          if [ "${{ runner.os }}" = "Windows" ]; then
            7z a ../../../${{ matrix.asset_name }}.zip ${{ matrix.artifact_name }}.exe
          else
            tar czvf ../../../${{ matrix.asset_name }}.tar.gz ${{ matrix.artifact_name }}
          fi
          cd -

      - name: Upload artifact
        uses: actions/upload-artifact@v4
        with:
          name: ${{ matrix.asset_name }}
          path: ${{ matrix.asset_name }}.tar.gz

  release:
    name: Create Release
    needs: build
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Download all artifacts
        uses: actions/download-artifact@v4
        with:
          path: artifacts

      - name: List artifacts
        run: find artifacts -type f

      - name: Create Release
        uses: softprops/action-gh-release@v2
        with:
          draft: false
          prerelease: false
          generate_release_notes: false
          body: |
            ## Makima CLI v${{ github.ref_name }}

            Initial release of the Makima CLI - a unified command-line interface for the Makima platform.

            ### Available Commands

            - **`makima server`** - Run the Makima server for audio processing and API endpoints
            - **`makima daemon`** - Run the daemon that connects to the server and executes tasks
            - **`makima supervisor`** - Supervisor commands for managing tasks and contracts
            - **`makima contract`** - Contract-related commands for task tracking and reporting

            ### Installation

            Download the appropriate binary for your platform and add it to your PATH:

            ```bash
            # Linux x86_64
            curl -LO https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/makima-${{ github.ref_name }}-linux-x86_64.tar.gz
            tar xzf makima-${{ github.ref_name }}-linux-x86_64.tar.gz
            sudo mv makima /usr/local/bin/

            # macOS Intel
            curl -LO https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/makima-${{ github.ref_name }}-macos-x86_64.tar.gz
            tar xzf makima-${{ github.ref_name }}-macos-x86_64.tar.gz
            sudo mv makima /usr/local/bin/

            # macOS Apple Silicon
            curl -LO https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/makima-${{ github.ref_name }}-macos-arm64.tar.gz
            tar xzf makima-${{ github.ref_name }}-macos-arm64.tar.gz
            sudo mv makima /usr/local/bin/
            ```

            ### Verification

            After installation, verify with:
            ```bash
            makima --help
            ```
          files: |
            artifacts/**/*.tar.gz