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