release.yml 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. name: Create release
  2. on:
  3. push:
  4. tags: 'v*'
  5. jobs:
  6. draft_release:
  7. name: 'Create draft release'
  8. runs-on: ubuntu-latest
  9. outputs:
  10. tag_name: ${{ steps.tag_name.outputs.tag }}
  11. upload_url: ${{ steps.create_release.outputs.upload_url }}
  12. steps:
  13. - name: Get tag name
  14. id: tag_name
  15. uses: little-core-labs/get-git-tag@v3.0.2
  16. - name: Create draft release
  17. id: create_release
  18. uses: actions/create-release@v1.1.4
  19. env:
  20. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  21. with:
  22. tag_name: ${{ github.ref }}
  23. release_name: PsySH ${{ steps.tag_name.outputs.tag }}
  24. body: |
  25. New:
  26. - ...
  27. Improved:
  28. - ...
  29. Removed:
  30. - ...
  31. draft: true
  32. prerelease: false
  33. upload_assets:
  34. name: 'Upload release assets'
  35. needs: draft_release
  36. runs-on: ubuntu-latest
  37. strategy:
  38. matrix:
  39. package: ['', '-php70']
  40. steps:
  41. - name: Check out code
  42. uses: actions/checkout@v3.5.3
  43. with:
  44. fetch-depth: 0
  45. - name: Set up PHP
  46. uses: shivammathur/setup-php@2.25.4
  47. with:
  48. php-version: 7.4
  49. tools: composer:v2
  50. coverage: none
  51. - name: Install dependencies
  52. uses: nick-fields/retry@v2.8.3
  53. with:
  54. timeout_minutes: 5
  55. max_attempts: 5
  56. command: composer update --no-interaction --no-progress
  57. - name: Build release asset
  58. run: make dist/psysh-${{ needs.draft_release.outputs.tag_name }}${{ matrix.package }}.tar.gz
  59. - name: Upload release asset
  60. uses: actions/upload-release-asset@v1.0.2
  61. env:
  62. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  63. with:
  64. upload_url: ${{ needs.draft_release.outputs.upload_url }}
  65. asset_path: ./dist/psysh-${{ needs.draft_release.outputs.tag_name }}${{ matrix.package }}.tar.gz
  66. asset_name: psysh-${{ needs.draft_release.outputs.tag_name }}${{ matrix.package }}.tar.gz
  67. asset_content_type: application/gzip