gitlobster 1.5.1

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 }}

  upload-assets:
    name: release ${{ matrix.os }}
    needs: integration-tests
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-latest
          - macos-latest
          - windows-latest
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
      - uses: taiki-e/upload-rust-binary-action@v1
        with:
          bin: gitlobster
          include: LICENSE,README.md
          token: ${{ secrets.GITHUB_TOKEN }}

  release-docker:
    name: release docker
    runs-on: ubuntu-latest
    needs: integration-tests
    steps:
      - uses: actions/checkout@v4
      - 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@v4
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: "1.82"
      - run: cargo publish --locked --token ${{ secrets.CARGO_REGISTRY_TOKEN }}