mirror of
https://github.com/JakeStanger/ironbar.git
synced 2024-11-26 09:02:26 +03:00
69 lines
2.4 KiB
YAML
69 lines
2.4 KiB
YAML
name: Binary
|
|
on:
|
|
workflow_run:
|
|
workflows: [Deploy]
|
|
types: [completed]
|
|
release:
|
|
types: [created]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
get_last_release:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
latest_release_tag: ${{ steps.latest-release.outputs.LATEST_RELEASE_TAG }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Extract the latest release
|
|
id: latest-release
|
|
run: echo "LATEST_RELEASE_TAG=$(gh release ls --json isLatest,tagName -q '.[] | select(.isLatest == true) | .tagName')" >> $GITHUB_OUTPUT
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
|
|
build:
|
|
if: ${{ github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success' }}
|
|
name: Build
|
|
runs-on: ubuntu-latest
|
|
needs: get_last_release
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
platform:
|
|
- {target: x86_64-unknown-linux-gnu, zipext: ".tar.gz"}
|
|
- {target: aarch64-unknown-linux-gnu, zipext: ".tar.gz"}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ needs.get_last_release.outputs.latest_release_tag }}
|
|
|
|
- uses: taiki-e/install-action@v2
|
|
with:
|
|
tool: cross
|
|
|
|
- name: Add OpenSSL crate (vendored)
|
|
run: cargo add openssl --features vendored
|
|
|
|
- name: Cross Build Release
|
|
run: cross build --locked --release --target=${{ matrix.platform.target }}
|
|
|
|
- name: Get name of Binary from metadata
|
|
run: echo "BINARY_NAME=$(cargo metadata --no-deps --format-version 1 | jq -r '.packages[].targets[] | select( .kind | map(. == "bin") | any ) | .name')" >> $GITHUB_ENV
|
|
|
|
- name: Compress the built binary
|
|
if: ${{ matrix.platform.zipext == '.tar.gz' }}
|
|
run: tar -zcvf ${{env.BINARY_NAME}}-${{needs.get_last_release.outputs.latest_release_tag}}-${{matrix.platform.target}}.tar.gz -C target/${{matrix.platform.target}}/release ${{env.BINARY_NAME}}
|
|
|
|
- name: Upload to release
|
|
run: gh release upload ${{needs.get_last_release.outputs.latest_release_tag}} ${{env.BINARY_NAME}}-${{needs.get_last_release.outputs.latest_release_tag}}-${{matrix.platform.target}}${{matrix.platform.zipext}}
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
on-failure:
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'failure' }}
|
|
steps:
|
|
- run: echo 'The triggering workflow Deploy failed'
|
|
- run: exit 1
|