release.yml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. name: Create release with tag
  2. on:
  3. push:
  4. # Sequence of patterns matched against refs/heads
  5. branches:
  6. - '*.*.*' # Push events to matching ex:20.15.10
  7. env:
  8. TAG_VALUE: ${GITHUB_REF/refs\/heads\//}
  9. PR_BRANCH: release-ci-${{ github.sha }}
  10. jobs:
  11. generate-changelog:
  12. name: Generate Changelog
  13. runs-on: ubuntu-latest
  14. steps:
  15. - name: Checkout code
  16. uses: actions/checkout@v2
  17. - name: 🏷️ Create/update tag
  18. uses: actions/github-script@v7
  19. with:
  20. script: |
  21. github.rest.git.createRef({
  22. owner: context.repo.owner,
  23. repo: context.repo.repo,
  24. ref: 'refs/tags/${{ github.ref_name }}',
  25. sha: context.sha
  26. }).catch(err => {
  27. if (err.status !== 422) throw err;
  28. })
  29. - name: Update CHANGELOG
  30. id: changelog
  31. uses: requarks/changelog-action@v1
  32. with:
  33. token: ${{ github.token }}
  34. tag: ${{ github.ref_name }}
  35. writeToFile: true
  36. #excludeTypes: build,docs,style
  37. #includeInvalidCommits: true
  38. - name: Commit CHANGELOG.md (master)
  39. uses: stefanzweifel/git-auto-commit-action@v4
  40. with:
  41. branch: master
  42. commit_message: 'docs: update CHANGELOG.md for ${{ github.ref_name }} [skip ci]'
  43. file_pattern: CHANGELOG.md
  44. - name: Commit CHANGELOG.md (branch)
  45. uses: stefanzweifel/git-auto-commit-action@v4
  46. with:
  47. branch: ${{ github.ref_name }}
  48. commit_message: 'docs: update CHANGELOG.md for ${{ github.ref_name }} [skip ci]'
  49. file_pattern: CHANGELOG.md
  50. build:
  51. name: Upload Release Asset
  52. permissions: write-all
  53. runs-on: ubuntu-latest
  54. steps:
  55. - name: Checkout code
  56. uses: actions/checkout@v2
  57. - name: Build project # This would actually build your project, using zip for an example artifact
  58. id: build_
  59. env:
  60. GITHUB_NAME: ${{ github.event.repository.name }}
  61. run: sudo apt-get install libxml-xpath-perl;echo $(xpath -e '/root/versions/version[num="'${GITHUB_REF/refs\/heads\/v/}'"]/compatibility/text()' plugin.xml);echo ::set-output name=version_glpi::$(xpath -e '/root/versions/version[num="'${GITHUB_REF/refs\/heads\/v/}'"]/compatibility/text()' plugin.xml); rm -rf plugin.xml tools wiki screenshots test .git .github ISSUE_TEMPLATE.md TODO.txt $GITHUB_NAME.png;cd ..; tar jcvf $GITHUB_NAME-${GITHUB_REF/refs\/heads\//}.tar.bz2 $GITHUB_NAME;ls -al;echo ::set-output name=tag::${GITHUB_REF/refs\/heads\//};echo ${{ steps.getxml.outputs.info }};
  62. # run: rm -rf plugin.xml tools wiki screenshots test ISSUE_TEMPLATE.md TODO.txt $GITHUB_NAME.png; tar -zcvf $GITHUB_NAME-$GITHUB_TAG.tar.gz $GITHUB_NAME
  63. - name: Create Release
  64. id: create_release
  65. uses: actions/create-release@v1
  66. env:
  67. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  68. with:
  69. tag_name: ${{ steps.build_.outputs.tag }}
  70. release_name: |
  71. GLPI ${{ steps.build_.outputs.version_glpi }} : Version ${{ steps.build_.outputs.tag }} disponible / available
  72. body : Version ${{ steps.build_.outputs.tag }} released for GLPI ${{ steps.build_.outputs.version_glpi }}. The [full changelog is available](https://github.com/edgardmessias/glpi-singlesignon/blob/master/CHANGELOG.md) for more details.
  73. draft: false
  74. prerelease: false
  75. - name: Upload Release Asset
  76. id: upload-release-asset
  77. uses: actions/upload-release-asset@v1
  78. env:
  79. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  80. GITHUB_NAME: ${{ github.event.repository.name }}
  81. with:
  82. upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
  83. asset_path: /home/runner/work/${{ github.event.repository.name }}/${{ github.event.repository.name }}-${{ steps.build_.outputs.tag }}.tar.bz2
  84. asset_name: ${{ github.event.repository.name }}-${{ steps.build_.outputs.tag }}.tar.bz2
  85. asset_content_type: application/zip