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