Skip to content

Commit

Permalink
feat: update pipeline to allow more build targets
Browse files Browse the repository at this point in the history
  • Loading branch information
chimbosonic committed Feb 22, 2024
1 parent 48cef26 commit db0d7d0
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 27 deletions.
File renamed without changes.
38 changes: 38 additions & 0 deletions .github/workflows/_build_macos_target.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: build_target

on:
workflow_call:
inputs:
target:
type: string
description: 'Build target'
required: true
channel:
type: string
description: 'Build target'
required: false
default: 'stable'

env:
CARGO_TERM_COLOR: always
jobs:
build-stable-x86_64-apple-darwin:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{inputs.channel}}
target: ${{inputs.target}}

- run: cargo build --release --target ${{inputs.target}}

- name: Package ${{inputs.channel}}-${{inputs.target}} release
run: |
tar -cvzf kneeboard-${{inputs.channel}}-${{inputs.target}}.tar.gz README.md LICENSE -C ./targe/${{inputs.target}}/release kneeboard
- uses: actions/upload-artifact@v4
with:
name: kneeboard-${{inputs.channel}}-${{inputs.target}}
path: kneeboard-${{inputs.channel}}-${{inputs.target}}.tar.gz
13 changes: 11 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,21 @@ jobs:
toolchain: stable
components: rustfmt
- run: cargo fmt --all -- --check
build-targets:
build-linux-targets:
name: Build targets
uses: ./.github/workflows/_build_target.yml
uses: ./.github/workflows/_build_linux_target.yml
strategy:
matrix:
target: [x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu, aarch64-unknown-linux-musl, x86_64-unknown-linux-musl]
with:
target: ${{ matrix.target }}
channel: stable
build-macos-targets:
name: Build targets
uses: ./.github/workflows/_build_macos_target.yml
strategy:
matrix:
target: [x86_64-apple-darwin, aarch64-apple-darwin]
with:
target: ${{ matrix.target }}
channel: stable
37 changes: 12 additions & 25 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ env:
jobs:
publish-crate:
runs-on: ubuntu-latest
outputs:
release_upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- uses: actions/checkout@v4

Expand All @@ -23,40 +21,29 @@ jobs:
crates_token: ${{ secrets.crates_token }}
run: cargo publish --locked --token ${crates_token} --verbose

build-targets:
build-linux-targets:
name: Build targets
uses: ./.github/workflows/_build_target.yml
uses: ./.github/workflows/_build_linux_target.yml
strategy:
matrix:
target: [x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu, aarch64-unknown-linux-musl, x86_64-unknown-linux-musl]
with:
target: ${{ matrix.target }}
channel: stable

build-stable-x86_64-apple-darwin:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
target: x86_64-apple-darwin

- run: cargo build --release

- name: Package stable-x86_64-apple-darwin release
run: |
tar -cvzf kneeboard-stable-x86_64-apple-darwin.tar.gz README.md LICENSE -C ./target/release kneeboard
- uses: actions/upload-artifact@v4
with:
name: kneeboard-stable-x86_64-apple-darwin
path: kneeboard-stable-x86_64-apple-darwin.tar.gz
build-macos-targets:
name: Build targets
uses: ./.github/workflows/_build_macos_target.yml
strategy:
matrix:
target: [x86_64-apple-darwin, aarch64-apple-darwin]
with:
target: ${{ matrix.target }}
channel: stable


create-release:
needs: [build-targets, build-stable-x86_64-apple-darwin, publish-crate]
needs: [build-linux-targets, build-macos-targets, publish-crate]
runs-on: ubuntu-latest
steps:
- name: Download Artifacts
Expand Down

0 comments on commit db0d7d0

Please sign in to comment.