gitlobster 1.3.0

A tool for cloning all available repositories in a GitLab instance
name: Release

on:
  release:
    types: [released]

jobs:
  integration-tests:
    uses: lowitea/gitlobster/.github/workflows/integration_test.yml@master
    secrets:
      SSH_KEY: ${{ secrets.SSH_KEY }}
      KNOWN_HOSTS: ${{ secrets.KNOWN_HOSTS }}
      GTLBSTR_TEST_GITLAB_TOKEN: ${{ secrets.GTLBSTR_TEST_GITLAB_TOKEN }}

  release-binaries:
    name: release ${{ matrix.target }}
    runs-on: ubuntu-latest
    needs: integration-tests
    strategy:
      fail-fast: false
      matrix:
        target:
          [
            x86_64-pc-windows-gnu,
            x86_64-unknown-linux-musl,
            x86_64-apple-darwin,
          ]
    steps:
      - uses: actions/checkout@master
      - name: Compile and release
        uses: rust-build/rust-build.action@v1.4.0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          RUSTTARGET: ${{ matrix.target }}
          EXTRA_FILES: "README.md LICENSE"
          MINIFY: true

  release-docker:
    name: release docker
    runs-on: ubuntu-latest
    needs: integration-tests
    steps:
      - uses: actions/checkout@v2
      - name: Build and push Docker image
        uses: docker/build-push-action@v1
        with:
          username: ${{ secrets.CI_DOCKER_HUB_USER }}
          password: ${{ secrets.CI_DOCKER_HUB_TOKEN }}
          repository: lowitea/gitlobster
          tags: ${{ github.event.release.tag_name }}, latest

  release-crate:
    name: release crate
    runs-on: ubuntu-latest
    needs: integration-tests
    steps:
      - uses: actions/checkout@v2
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - uses: actions-rs/cargo@v1
        with:
          command: publish
          args: --locked
        env:
          CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}