main #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: main | |
on: | |
workflow_dispatch: | |
push: | |
tags: | |
- "*" | |
jobs: | |
create_release: | |
name: Create release | |
runs-on: ubuntu-latest | |
outputs: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
steps: | |
- name: Create release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: ${{ github.ref }} | |
draft: false | |
prerelease: false | |
build_linux: | |
name: "linux build" | |
runs-on: ubuntu-latest | |
needs: create_release # we need to know the upload URL | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: docker/setup-qemu-action@v2 | |
- uses: docker/setup-buildx-action@v2 | |
- name: build | |
run: | | |
docker buildx build . --platform linux/amd64,linux/arm64,linux/arm/v7 --output 'type=local,dest=dist' | |
- name: upload-amd64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{ needs.create_release.outputs.upload_url }} | |
asset_path: dist/linux_amd64/piper_amd64.tar.gz | |
asset_name: piper_linux_x86_64.tar.gz | |
asset_content_type: application/octet-stream | |
- name: upload-arm64 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{ needs.create_release.outputs.upload_url }} | |
asset_path: dist/linux_arm64/piper_arm64.tar.gz | |
asset_name: piper_linux_aarch64.tar.gz | |
asset_content_type: application/octet-stream | |
- name: upload-armv7 | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{ needs.create_release.outputs.upload_url }} | |
asset_path: dist/linux_arm_v7/piper_armv7.tar.gz | |
asset_name: piper_linux_armv7l.tar.gz | |
asset_content_type: application/octet-stream | |
build_windows: | |
runs-on: windows-latest | |
name: "windows build: ${{ matrix.arch }}" | |
needs: create_release # we need to know the upload URL | |
strategy: | |
fail-fast: true | |
matrix: | |
arch: [x64] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: configure | |
run: | | |
cmake -Bbuild -DCMAKE_INSTALL_PREFIX=_install/piper | |
- name: build | |
run: | | |
cmake --build build --config Release | |
- name: install | |
run: | | |
cmake --install build | |
- name: package | |
run: | | |
cd _install | |
Compress-Archive -LiteralPath piper -DestinationPath piper_windows_amd64.zip | |
- name: upload | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{ needs.create_release.outputs.upload_url }} | |
asset_path: _install/piper_windows_amd64.zip | |
asset_name: piper_windows_amd64.zip | |
asset_content_type: application/zip | |
build_macos: | |
name: "macos build: ${{ matrix.arch }}" | |
runs-on: macos-latest | |
needs: create_release # we need to know the upload URL | |
strategy: | |
fail-fast: true | |
matrix: | |
arch: [x64, aarch64] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: configure | |
run: | | |
cmake -Bbuild -DCMAKE_INSTALL_PREFIX=_install/piper | |
- name: build | |
run: | | |
cmake --build build --config Release | |
- name: install | |
run: | | |
cmake --install build | |
- name: package | |
run: | | |
cd _install && \ | |
tar -czf piper_macos_${{ matrix.arch }}.tar.gz piper/ | |
- name: upload | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
with: | |
upload_url: ${{ needs.create_release.outputs.upload_url }} | |
asset_path: _install/piper_macos_${{ matrix.arch }}.tar.gz | |
asset_name: piper_macos_${{ matrix.arch }}.tar.gz | |
asset_content_type: application/octet-stream |