Skip to content

Commit

Permalink
Merge pull request #72 from CommandDash/fix/non-arm-mac
Browse files Browse the repository at this point in the history
Add macOS-13 separately to keep supporting intel Macs
  • Loading branch information
samyakkkk authored May 27, 2024
2 parents af6d819 + 6c76a19 commit 3e00645
Showing 1 changed file with 64 additions and 55 deletions.
119 changes: 64 additions & 55 deletions .github/workflows/executables.yml
Original file line number Diff line number Diff line change
@@ -1,104 +1,113 @@
name: Build, Test and Verify Executables

on:
push:
push:
branches:
- build/executables
##TODO: In future, when m1 runners are publicly supported, compiled and verify seperately for arm architectures.
- build/executables

jobs:
build:
build:
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest]
matrix:
os: [ubuntu-latest, windows-latest, macOS-latest, macos-13]
include:
- os: ubuntu-latest
- os: ubuntu-latest
output-name: commanddash-linux
- os: macOS-latest
- os: macOS-latest
output-name: commanddash-mac
- os: windows-latest
- os: windows-latest
output-name: commanddash-windows.exe
- os: macos-13
output-name: commanddash-mac-x64
steps:
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1
- name: Dart pub get
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1
- name: Dart pub get
run: |
cd commanddash
mkdir -p build
dart pub get
- name: Compile
cd commanddash
mkdir -p build
dart pub get
- name: Compile
run: |
cd commanddash
dart compile exe bin/commanddash.dart -o build/${{ matrix.output-name }}
- uses: actions/upload-artifact@v4
cd commanddash
dart compile exe bin/commanddash.dart -o build/${{ matrix.output-name }}
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.output-name }} # Dynamically name the artifact based on the OS
path: commanddash/build/${{ matrix.output-name }}
test:
name: ${{ matrix.output-name }} # Dynamically name the artifact based on the OS
path: commanddash/build/${{ matrix.output-name }}

test:
needs: build
runs-on: ${{ matrix.os }}

strategy:
matrix:
matrix:
include:
- os: ubuntu-latest
- os: ubuntu-latest
binary-name: commanddash-linux
- os: windows-latest
- os: windows-latest
binary-name: commanddash-windows.exe
- os: macos-latest
- os: macos-latest
binary-name: commanddash-mac

- os: macos-13
binary-name: commanddash-mac-x64

steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
- uses: actions/checkout@v4

- uses: actions/download-artifact@v4
with:
name: ${{ matrix.binary-name }}
path: ./executable
# Ensure binary is executable (necessary for Unix-based systems)
- name: Make binary executable
name: ${{ matrix.binary-name }}
path: ./executable

# Ensure binary is executable (necessary for Unix-based systems)
- name: Make binary executable
if: matrix.os != 'windows-latest'
run: chmod +x ./executable/${{ matrix.binary-name }}

- name: Test binary
- name: Test binary
run: ./executable/${{ matrix.binary-name }} --help

submit-executables:
submit-executables:
needs: build
runs-on: ubuntu-latest

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

- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v4
with:
name: commanddash-linux
path: ./executable

- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v4
with:
name: commanddash-mac
path: ./executable

- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v4
with:
name: commanddash-windows.exe
path: ./executable

- name: Submit Executables
- uses: actions/download-artifact@v4
with:
name: commanddash-mac-x64
path: ./executable

- name: Submit Executables
run: |
chmod +x ./executable/commanddash-linux
echo "Version: $(./executable/commanddash-linux version)"
echo "Minimum client version: $(./executable/commanddash-linux min_client_version)"
curl -X POST "https://api.commanddash.dev/executable/add" \
-H "Content-Type: multipart/form-data" \
-F "secret=${{ secrets.SECRET_KEY }}" \
-F "version=$(./executable/commanddash-linux version)" \
-F "minimum_client_version=$(./executable/commanddash-linux min_client_version)" \
-F "windows_binary=@executable/commanddash-windows.exe" \
-F "macos_binary=@executable/commanddash-mac" \
-F "linux_binary=@executable/commanddash-linux"
chmod +x ./executable/commanddash-linux
echo "Version: $(./executable/commanddash-linux version)"
echo "Minimum client version: $(./executable/commanddash-linux min_client_version)"
curl -X POST "https://api.commanddash.dev/executable/add" \
-H "Content-Type: multipart/form-data" \
-F "secret=${{ secrets.SECRET_KEY }}" \
-F "version=$(./executable/commanddash-linux version)" \
-F "minimum_client_version=$(./executable/commanddash-linux min_client_version)" \
-F "windows_binary=@executable/commanddash-windows.exe" \
-F "macos_binary=@executable/commanddash-mac" \
-F "linux_binary=@executable/commanddash-linux" \
-F "macos_x64_binary=@executable/commanddash-mac-x64"

0 comments on commit 3e00645

Please sign in to comment.