wally 0.3.2

Package manager for Roblox
Documentation
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