publish.yml 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. environment: FAIR_MATH_PUBLISHER
  20. steps:
  21. - uses: actions/create-github-app-token@v1
  22. id: app-token
  23. with:
  24. app-id: ${{ vars.FAIR_MATH_PUBLISHER_ID }}
  25. private-key: ${{ secrets.FAIR_MATH_PUBLISHER_PRIVATE_KEY }}
  26. - run: |
  27. echo "Change type: $CHANGE_TYPE"
  28. env:
  29. CHANGE_TYPE: ${{ inputs.change_type }}
  30. - name: Checkout sources
  31. uses: actions/checkout@v4
  32. with:
  33. token: ${{ steps.app-token.outputs.token }}
  34. - name: Install Rust toolchain
  35. uses: dtolnay/rust-toolchain@stable
  36. with:
  37. toolchain: stable-gnu
  38. - name: Changing version in Cargo.toml
  39. run: |
  40. chmod +x ${GITHUB_WORKSPACE}/.github/change_version.sh
  41. bash ${GITHUB_WORKSPACE}/.github/change_version.sh
  42. - name: Pushing Cargo.toml changes to master
  43. run: |
  44. git config --local user.name 'github-actions'
  45. git config --local user.email 'github-actions@github.com'
  46. git commit -am "Automated version change in Cargo.toml"
  47. git push origin master
  48. - run: cargo publish --no-verify --token ${CRATES_TOKEN}
  49. env:
  50. CRATES_TOKEN: ${{ secrets.CRATES_TOKEN }}