name: Publish release files for non-cd-native environments

on:
  # workflow_run:
  #   workflows: ["Check SemVer compliance"]
  #   types:
  #     - completed
  release:
    types: [ created ]

jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        target: [ "aarch64-unknown-linux-gnu", "armv7-unknown-linux-gnueabihf", "x86_64-unknown-linux-musl", "aarch64-unknown-linux-musl", "x86_64-unknown-freebsd",  ]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
          default: true
          override: true
          target: ${{ matrix.target }}
          components: rustfmt, clippy
      - uses: actions-rs/cargo@v1.0.1
        name: Check format
        with:
          use-cross: true
          command: fmt
          args: --all -- --check
      - uses: actions-rs/cargo@v1.0.1
        name: Run clippy
        with:
          command: clippy
          use-cross: true
          args: --all-targets --locked --target ${{matrix.target}} -- -D warnings
      - uses: actions-rs/cargo@v1.0.1
        name: Run clippy (All features)
        with:
          command: clippy
          use-cross: true
          args:  --locked --all-features --target ${{matrix.target}} -- -D warnings
      - uses: actions-rs/cargo@v1.0.1
        name: Run tests
        with:
          command: test
          use-cross: true
          args: --target ${{matrix.target}}
      - uses: actions-rs/cargo@v1.0.1
        name: Build
        with:
          command: build
          use-cross: true
          args: --release --all-features --target ${{matrix.target}}
      - name: Rename Release
        run: |
          mkdir assets
          FILENAME=topgrade-${{github.event.release.tag_name}}-${{matrix.target}}
          mv target/${{matrix.target}}/release/topgrade assets
          cd assets
          tar --format=ustar -czf $FILENAME.tar.gz topgrade
          rm topgrade
          ls .
      - name: Release
        uses: softprops/action-gh-release@v1
        with:
          files: assets/*
