qbittorrent_web_api/.github/workflows/publish.yml
2022-07-11 15:07:40 +00:00

81 lines
2.1 KiB
YAML

name: Publish
on:
push:
branches:
- main
env:
CARGO_TERM_COLOR: always
jobs:
tag:
runs-on: ubuntu-22.04
outputs:
should_publish: ${{ steps.create-and-push-tag.outputs.should_publish }}
steps:
- uses: actions/checkout@v3
- name: Determine version
id: determine-version
run: |
VERSION=$(cat Cargo.toml | grep version | head -1 | sed 's/version = //' | sed 's/"//g')
echo "::set-output name=version::$VERSION"
- name: Create and push tag
id: create-and-push-tag
run: |
git config --local user.email "github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git tag "v${{ steps.determine-version.outputs.version }}" -a -m "Create new release"
SHOULD_PUBLISH='true'
git push origin "v${{ steps.determine-version.outputs.version }}" || SHOULD_PUBLISH='false'
echo "::set-output name=should_publish::$SHOULD_PUBLISH"
- name: Result
run: |
echo "The result is: ${{ steps.create-and-push-tag.outputs.should_publish }}"
publish:
runs-on: ubuntu-22.04
needs: tag
if: ${{ needs.tag.outputs.should_publish == 'true' }}
steps:
- uses: actions/checkout@v3
- name: Verify version
run: ./.github/verify_version.sh
- name: Install latest stable
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
- name: Login
uses: actions-rs/cargo@v1
with:
command: login
args: ${{ secrets.CRATES_IO_TOKEN }}
- name: Publish qbittorrent-web-api-gen
uses: actions-rs/cargo@v1
with:
command: publish
args: --package qbittorrent-web-api-gen
- name: Sleep for 30 seconds - wait for qbittorrent-web-api-gen to be available
uses: jakejarvis/wait-action@master
with:
time: '30s'
- name: Publish qbittorrent-web-api
uses: actions-rs/cargo@v1
with:
command: publish