publish.yml 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. name: publish
  2. on:
  3. workflow_dispatch:
  4. inputs:
  5. change_type:
  6. description: Change type
  7. type: choice
  8. options:
  9. - major
  10. - minor
  11. - patch
  12. default: patch
  13. jobs:
  14. publish:
  15. name: publish
  16. permissions:
  17. contents: write
  18. runs-on: ubuntu-latest
  19. steps:
  20. - uses: actions/create-github-app-token@v1
  21. id: app-token
  22. with:
  23. app-id: ${{ vars.REPO_FAIR_MATH_PUBLISHER_ID }}
  24. private-key: ${{ secrets.REPO_FAIR_MATH_PUBLISHER_PRIVATE_KEY }}
  25. - run: |
  26. echo "Change type: $CHANGE_TYPE"
  27. env:
  28. CHANGE_TYPE: ${{ inputs.change_type }}
  29. - name: Checkout sources
  30. uses: actions/checkout@v4
  31. with:
  32. token: ${{ steps.app-token.outputs.token }}
  33. - name: Install Rust toolchain
  34. uses: dtolnay/rust-toolchain@stable
  35. with:
  36. toolchain: stable-gnu
  37. - name: Changing version in Cargo.toml
  38. run: |
  39. chmod +x ${GITHUB_WORKSPACE}/.github/change_version.sh
  40. bash ${GITHUB_WORKSPACE}/.github/change_version.sh
  41. - name: Pushing Cargo.toml changes to master
  42. run: |
  43. git config --local user.name 'github-actions'
  44. git config --local user.email 'github-actions@github.com'
  45. git commit -am "Automated version change in Cargo.toml"
  46. git push origin master
  47. - run: cargo publish --no-verify --dry-run --token ${REPO_CRATES_TOKEN}
  48. env:
  49. REPO_CRATES_TOKEN: ${{ secrets.REPO_CRATES_TOKEN }}