agate/.github/workflows/rust.yml
Johann150 3089a4034a
use cargo cross
The problems I had using podman were resolved by realizing that ubuntu-latest
does not actually mean the latest version of Ubuntu (for now) so explicitly
stating the Ubuntu version, installing podman works fine and can build binaries
for Raspberry Pi properly.
2021-02-06 17:06:46 +01:00

111 lines
3.6 KiB
YAML

name: Release Builds
on:
push:
tags:
- 'v*' # on every version tag
jobs:
# first just a small job to draft the release so all others can use the upload_url
create_release:
runs-on: ubuntu-latest
steps:
- name: create release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
# only draft the release so changelog can be edited
draft: true
prerelease: false
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
build_ubuntu:
runs-on: ubuntu-20.04
needs: create_release
steps:
- uses: actions/checkout@v1
- name: build
run: bash release.sh
- name: upload release asset x86_64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: ./agate.x86_64-unknown-linux-gnu.gz
asset_name: agate.x86_64-unknown-linux-gnu.gz
asset_content_type: application/gzip
- name: upload release asset arm
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: ./agate.arm-unknown-linux-gnueabihf.gz
asset_name: agate.arm-unknown-linux-gnueabihf.gz
asset_content_type: application/gzip
- name: upload release asset armv7
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: ./agate.armv7-unknown-linux-gnueabihf.gz
asset_name: agate.armv7-unknown-linux-gnueabihf.gz
asset_content_type: application/gzip
- name: upload release asset aarch64
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: ./agate.aarch64-unknown-linux-gnu.gz
asset_name: agate.aarch64-unknown-linux-gnu.gz
asset_content_type: application/gzip
build_windows:
runs-on: windows-latest
needs: create_release
steps:
- uses: actions/checkout@v1
- name: Build
run: cargo build --verbose --release
- name: strip names
run: strip target/release/agate.exe
- name: compress
run: gzip -c target/release/agate.exe > ./agate.exe.gz
- name: upload release asset win
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_name: agate.x86_64-pc-windows-msvc.exe.gz
asset_path: agate.exe.gz
asset_content_type: application/gzip
build_macos:
runs-on: macos-latest
needs: create_release
steps:
- uses: actions/checkout@v1
- name: Build
run: cargo build --verbose --release
- name: strip names
run: strip target/release/agate
- name: compress
run: gzip -c target/release/agate > ./agate.gz
- name: upload release asset darwin
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_path: ./agate.gz
asset_name: agate.x86_64-apple-darwin.gz
asset_content_type: application/gzip