Skip to content

Commit

Permalink
build for macos x86_64 as well
Browse files Browse the repository at this point in the history
  • Loading branch information
robin-thoene committed Nov 21, 2024
1 parent fe4776f commit 23257c1
Showing 1 changed file with 85 additions and 14 deletions.
99 changes: 85 additions & 14 deletions .github/workflows/ci_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,24 +12,21 @@ on:

env:
BINARY_NAME: hotsave
ARTIFACT_NAME: hotsave-artifact
ARTIFACT_NAME_VERSION: hotsave-version
ARTIFACT_NAME_LINUX: hotsave-linux
ARTIFACT_NAME_MACOS: hotsave-macos
LINUX_TARGET_x86_64: x86_64-unknown-linux-gnu
MACOS_TARGET_x86_64: x86_64-apple-darwin

jobs:
build:
name: Build cli application
store_version:
name: Determine version
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup tooling
run: |
sudo apt-get install -y libxi-dev libxtst-dev
rustup update stable
rustup default stable
cargo install cargo-edit
- name: Install GitVersion
uses: gittools/actions/gitversion/[email protected]
with:
Expand All @@ -43,30 +40,104 @@ jobs:
run: |
mkdir dist
echo "$GitVersion_FullSemVer" > ./dist/version.txt
- name: Publish artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME_VERSION }}
path: dist
build_linux:
name: Build for Linux
runs-on: ubuntu-latest
needs: store_version
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME_VERSION }}
path: dist
- name: Load version
run: echo "VERSION=$(cat ./dist/version.txt)" >> $GITHUB_ENV
- name: Setup tooling
run: |
sudo apt-get install -y libxi-dev libxtst-dev
rustup update stable
rustup default stable
rustup target install ${{ env.LINUX_TARGET_x86_64 }}
cargo install cargo-edit
- name: Build Linux release
run: |
cargo set-version $GitVersion_FullSemVer
cargo set-version ${{ env.VERSION }}
cargo build --locked --release --bin ${{ env.BINARY_NAME }} --target=${{ env.LINUX_TARGET_x86_64 }}
- name: Create artifact
run: |
tar -C ./target/${{ env.LINUX_TARGET_x86_64 }}/release -zcvf ./dist/${{ env.LINUX_TARGET_x86_64 }}.tar.gz ./${{ env.BINARY_NAME }}
- name: Publish artifact
if: github.event_name == 'push'
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
name: ${{ env.ARTIFACT_NAME_LINUX }}
path: dist
build_macos:
name: Build for macOS
runs-on: macos-latest
needs: store_version
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME_VERSION }}
path: dist
- name: Load version
run: echo "VERSION=$(cat ./dist/version.txt)" >> $GITHUB_ENV
- name: Setup tooling
run: |
rustup update stable
rustup default stable
rustup target install ${{ env.MACOS_TARGET_x86_64 }}
cargo install cargo-edit
- name: Build macOS release
run: |
cargo set-version ${{ env.VERSION }}
cargo build --locked --release --bin ${{ env.BINARY_NAME }} --target=${{ env.MACOS_TARGET_x86_64 }}
- name: Create artifact
run: |
tar -C ./target/${{ env.MACOS_TARGET_x86_64 }}/release -zcvf ./dist/${{ env.MACOS_TARGET_x86_64 }}.tar.gz ./${{ env.BINARY_NAME }}
- name: Publish artifact
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME_MACOS }}
path: dist

publish:
if: github.event_name == 'push'
name: Create release
runs-on: ubuntu-latest
needs: build
needs: |
store_version
build_linux
build_macos
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME }}
name: ${{ env.ARTIFACT_NAME_VERSION }}
path: dist
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME_LINUX }}
path: dist
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: ${{ env.ARTIFACT_NAME_MACOS }}
path: dist
- name: Load version
run: echo "VERSION=$(cat ./dist/version.txt)" >> $GITHUB_ENV
Expand Down

0 comments on commit 23257c1

Please sign in to comment.