multiarch-build.yml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. name: Build Release
  2. on:
  3. push:
  4. tags:
  5. - v*
  6. jobs:
  7. build-releases:
  8. strategy:
  9. matrix:
  10. arch: ["x86_64", "armv7h", "aarch64"]
  11. name: Build ${{ matrix.arch }}
  12. runs-on: ubuntu-latest
  13. steps:
  14. - name: Checkout code
  15. uses: actions/checkout@v2
  16. - name: Read info
  17. id: tags
  18. shell: bash
  19. run: |
  20. echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\/v/}
  21. echo ::set-output name=TAG::${GITHUB_REF/refs\/tags\//}
  22. - name: Install dependencies
  23. run: sudo apt update -y && sudo apt install -y qemu qemu-user-static
  24. - name: Setup qemu-user-static
  25. run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
  26. - name: Build ${{ matrix.arch }} release
  27. run: |
  28. mkdir artifacts
  29. make docker-release-${{ matrix.arch }} ARCH=${{ matrix.arch }} VERSION=${{ steps.tags.outputs.version }} PREFIX="/usr"
  30. mv *.tar.gz artifacts
  31. - uses: actions/upload-artifact@v2
  32. with:
  33. name: yay_${{ matrix.arch }}
  34. path: artifacts
  35. create_release:
  36. name: Create release from this build
  37. needs: [build-releases]
  38. runs-on: ubuntu-latest
  39. steps:
  40. - name: Read info
  41. id: tags
  42. shell: bash
  43. run: |
  44. echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\/v/}
  45. echo ::set-output name=TAG::${GITHUB_REF/refs\/tags\//}
  46. - uses: actions/download-artifact@v2
  47. with:
  48. name: yay_x86_64
  49. - uses: actions/download-artifact@v2
  50. with:
  51. name: yay_armv7h
  52. - uses: actions/download-artifact@v2
  53. with:
  54. name: yay_aarch64
  55. - name: Create Release
  56. id: create_release
  57. uses: actions/create-release@master
  58. env:
  59. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  60. with:
  61. tag_name: ${{ steps.tags.outputs.tag }}
  62. release_name: ${{ steps.tags.outputs.tag }}
  63. draft: false
  64. prerelease: false
  65. - name: Upload x86_64 asset
  66. id: upload-release-asset-x86_64
  67. uses: actions/upload-release-asset@v1
  68. env:
  69. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  70. with:
  71. upload_url: ${{ steps.create_release.outputs.upload_url }}
  72. asset_path: ./yay_${{ steps.tags.outputs.version }}_x86_64.tar.gz
  73. asset_name: yay_${{ steps.tags.outputs.version }}_x86_64.tar.gz
  74. asset_content_type: application/tar+gzip
  75. - name: Upload armv7h asset
  76. id: upload-release-asset-armv7h
  77. uses: actions/upload-release-asset@v1
  78. env:
  79. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  80. with:
  81. upload_url: ${{ steps.create_release.outputs.upload_url }}
  82. asset_path: ./yay_${{ steps.tags.outputs.version }}_armv7h.tar.gz
  83. asset_name: yay_${{ steps.tags.outputs.version }}_armv7h.tar.gz
  84. asset_content_type: application/tar+gzip
  85. - name: Upload aarch64 asset
  86. id: upload-release-asset-aarch64
  87. uses: actions/upload-release-asset@v1
  88. env:
  89. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  90. with:
  91. upload_url: ${{ steps.create_release.outputs.upload_url }}
  92. asset_path: ./yay_${{ steps.tags.outputs.version }}_aarch64.tar.gz
  93. asset_name: yay_${{ steps.tags.outputs.version }}_aarch64.tar.gz
  94. asset_content_type: application/tar+gzip
  95. - name: Checkout
  96. uses: actions/checkout@v2
  97. - name: Release Notary Action
  98. uses: commitsar-app/release-notary@v0.8.0
  99. env:
  100. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  101. GITHUB_REPOSITORY: jguer/yay