release.yml 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. on:
  2. push:
  3. tags:
  4. - 'v*.*'
  5. name: Release
  6. jobs:
  7. build-ubuntu:
  8. runs-on: ubuntu-20.04
  9. steps:
  10. - uses: actions/checkout@v2
  11. - name: Set environment variables
  12. id: vars
  13. run: |
  14. echo "::set-output name=ref::$(echo ${{ github.ref }} | sed -e's#.*/##')"
  15. - name: Dependency packages (apt)
  16. run: |
  17. sudo apt update
  18. sudo apt -y install git gcc-arm-none-eabi python3-pip srecord stm32flash zip
  19. - name: Dependency packages (pip)
  20. run: python3 -m pip install --user bitarray crcmod pyserial
  21. - name: Build dist
  22. run: make dist
  23. - name: Upload artifacts
  24. uses: actions/upload-artifact@v2
  25. with:
  26. name: Greaseweazle.CI.${{ steps.vars.outputs.ref }}
  27. path: Greaseweazle-${{ steps.vars.outputs.ref }}.zip
  28. build-windows:
  29. needs: build-ubuntu
  30. runs-on: windows-2019
  31. steps:
  32. - uses: actions/checkout@v2
  33. - name: Set environment variables
  34. id: vars
  35. run: |
  36. echo "::set-output name=ref::$(echo ${{ github.ref }} | sed -e's#.*/##')"
  37. - name: Download Ubuntu build
  38. uses: actions/download-artifact@v2
  39. with:
  40. name: Greaseweazle.CI.${{ steps.vars.outputs.ref }}
  41. - name: Set up Python
  42. uses: actions/setup-python@v2
  43. with:
  44. python-version: 3.8
  45. architecture: x86
  46. - name: Dependency packages (pip)
  47. run: |
  48. python -m pip install --upgrade pip setuptools wheel
  49. python -m pip install --user bitarray crcmod pyserial cx_Freeze
  50. - name: Build dist
  51. run: make windist
  52. - name: Create Release
  53. id: create_release
  54. uses: actions/create-release@v1
  55. env:
  56. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  57. with:
  58. tag_name: ${{ github.ref }}
  59. release_name: ${{ steps.vars.outputs.ref }}
  60. body: "[**Release Notes:**](https://github.com/keirf/Greaseweazle/blob/master/RELEASE_NOTES)"
  61. draft: false
  62. prerelease: false
  63. - name: Upload Release Asset (Windows)
  64. uses: actions/upload-release-asset@v1
  65. env:
  66. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  67. with:
  68. upload_url: ${{ steps.create_release.outputs.upload_url }}
  69. asset_path: Greaseweazle-${{ steps.vars.outputs.ref }}-win.zip
  70. asset_name: Greaseweazle-${{ steps.vars.outputs.ref }}-win.zip
  71. asset_content_type: application/zip
  72. - name: Upload Release Asset (Other)
  73. uses: actions/upload-release-asset@v1
  74. env:
  75. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  76. with:
  77. upload_url: ${{ steps.create_release.outputs.upload_url }}
  78. asset_path: Greaseweazle-${{ steps.vars.outputs.ref }}.zip
  79. asset_name: Greaseweazle-${{ steps.vars.outputs.ref }}.zip
  80. asset_content_type: application/zip