linkle 0.2.11

Nintendo file format manipulation library and tools.
Documentation
on:
  push:
    # Sequence of patterns matched against refs/tags
    tags:
    - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10

name: Create Release

jobs:
  create_release:
    name: 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: Release ${{ github.ref }}
          draft: false
          prerelease: false
      - name: Output Release URL File
        run: echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt
      - name: Save Release URL File for publish
        uses: actions/upload-artifact@v1
        with:
          name: release_url
          path: release_url.txt
  build_upload:
    needs: [create_release]
    name: Build and Upload Release Assets
    strategy:
      matrix:
        target: ["x86_64-pc-windows-msvc", "x86_64-unknown-linux-musl", "x86_64-apple-darwin"]
        include:
          - target: x86_64-apple-darwin
            os: macos-latest
            binary: linkle
          - target: x86_64-pc-windows-msvc
            os: windows-latest
            binary: linkle.exe
          - target: x86_64-unknown-linux-musl
            os: ubuntu-latest
            binary: linkle
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          target: ${{ matrix.target }}
      - name: Install Musl
        if: contains(matrix.target, 'musl') && matrix.os == 'ubuntu-latest'
        run: sudo apt-get install -y musl musl-tools
      - uses: actions-rs/cargo@v1
        with:
          command: build
          args: --target ${{ matrix.target }} --release --features=binaries
      - name: Create release zip
        shell: pwsh
        run: |
          compress-archive -path 'target/${{ matrix.target }}/release/${{ matrix.binary }}' -destinationpath 'linkle.zip' -compressionlevel fastest
      - name: Load Release URL File from release job
        uses: actions/download-artifact@v1
        with:
          name: release_url
      - name: Get Release File Name & Upload URL
        id: get_release_info
        shell: bash
        run: |
          value=`cat release_url/release_url.txt`
          echo ::set-output name=upload_url::$value
      - name: Upload Release Asset
        id: upload-release-asset
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.get_release_info.outputs.upload_url }}
          asset_path: ./linkle.zip
          asset_name: linkle-${{ github.ref }}-${{ matrix.target }}.zip
          asset_content_type: application/zip