# .github/workflows/release.yml

on:
  push:
    tags:
        - 'release*'

jobs:
  release:
    name: release ${{ matrix.target }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
          - target: x86_64-pc-windows-gnu
            archive: zip
          - target: x86_64-unknown-linux-musl
            archive: tar.gz
    steps:
      - uses: actions/checkout@master
        with:
          ssh-key: "${{secrets.RELEASE_KEY}}"
      - uses: Swatinem/rust-cache@v2
        with:
          # The prefix cache key, this can be changed to start a new cache manually.
          # default: "v0-rust"
          prefix-key: ""

          # A cache key that is used instead of the automatic `job`-based key,
          # and is stable over multiple jobs.
          # default: empty
          shared-key: ""

          # An additional cache key that is added alongside the automatic `job`-based
          # cache key and can be used to further differentiate jobs.
          # default: empty
          key: ""

          # A whitespace separated list of env-var *prefixes* who's value contributes
          # to the environment cache key.
          # The env-vars are matched by *prefix*, so the default `RUST` var will
          # match all of `RUSTC`, `RUSTUP_*`, `RUSTFLAGS`, `RUSTDOC_*`, etc.
          # default: "CARGO CC CFLAGS CXX CMAKE RUST"
          env-vars: ""
          
          # The cargo workspaces and target directory configuration.
          # These entries are separated by newlines and have the form
          # `$workspace -> $target`. The `$target` part is treated as a directory
          # relative to the `$workspace` and defaults to "target" if not explicitly given.
          # default: ". -> target"
          workspaces: ". -> target"
      - name: Compile and release
        uses: rust-build/rust-build.action@v1.4.3
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          RUSTTARGET: ${{ matrix.target }}
          ARCHIVE_TYPES: ${{ matrix.archive }}