name: Release
on:
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: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
draft: true
prerelease: false
windows:
needs: ["create-release"]
runs-on: windows-latest
steps:
- uses: actions/checkout@v1
with:
submodules: true
- uses: Swatinem/rust-cache@v2
- name: Build release binary
run: cargo build --verbose --locked --release
- name: Create Release Archive
shell: bash
run: |
mkdir staging
cp "target/release/wally.exe" staging/
cd staging
zip ../release.zip *
- name: Upload Archive to Release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: release.zip
asset_name: wally-${{ github.ref }}-win64.zip
asset_content_type: application/octet-stream
- name: Upload artifacts
uses: actions/upload-artifact@v1
with:
name: wally-${{ github.ref }}-win64.zip
path: release.zip
macos:
needs: ["create-release"]
runs-on: macos-latest
steps:
- uses: actions/checkout@v1
with:
submodules: true
- name: Install Rust
run: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
- uses: Swatinem/rust-cache@v2
- name: Build release binary
run: |
source $HOME/.cargo/env
cargo build --verbose --locked --release
env:
OPENSSL_STATIC: 1
- name: Create Release Archive
shell: bash
run: |
mkdir staging
cp "target/release/wally" staging/
cd staging
zip ../release.zip *
- name: Upload Archive to Release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: release.zip
asset_name: wally-${{ github.ref }}-macos.zip
asset_content_type: application/octet-stream
- name: Upload artifacts
uses: actions/upload-artifact@v1
with:
name: wally-${{ github.ref }}-macos.zip
path: release.zip
linux:
needs: ["create-release"]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
with:
submodules: true
- uses: Swatinem/rust-cache@v2
- name: Build
run: cargo build --locked --verbose --release
env:
OPENSSL_STATIC: 1
- name: Create Release Archive
shell: bash
run: |
mkdir staging
cp "target/release/wally" staging/
cd staging
zip ../release.zip *
- name: Upload Archive to Release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: release.zip
asset_name: wally-${{ github.ref }}-linux.zip
asset_content_type: application/octet-stream
- name: Upload artifacts
uses: actions/upload-artifact@v1
with:
name: wally-${{ github.ref }}-linux.zip
path: release.zip