debian_packages.yml 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. name: Debian Packages
  2. permissions: read-all
  3. on:
  4. workflow_dispatch:
  5. push:
  6. tags:
  7. - '[0-9]+.[0-9]+.[0-9]+'
  8. schedule:
  9. - cron: '0 0 * * 1,4' # Runs at 00:00 UTC on Monday and Thursday
  10. pull_request:
  11. branches: [ main ]
  12. paths:
  13. - 'packaging/debian/**' # Only run on changes to the debian packaging files
  14. - '.github/workflows/debian_packages.yml'
  15. jobs:
  16. test-packages:
  17. if: (github.event_name == 'schedule' && github.repository_owner == 'miniflux')
  18. || github.event_name == 'pull_request'
  19. name: Test Packages
  20. runs-on: ubuntu-latest
  21. steps:
  22. - uses: actions/checkout@v6
  23. with:
  24. fetch-depth: 0
  25. - name: Set up QEMU
  26. uses: docker/setup-qemu-action@v4
  27. - name: Set up Docker Buildx
  28. uses: docker/setup-buildx-action@v4
  29. id: buildx
  30. with:
  31. install: true
  32. - name: Available Docker Platforms
  33. run: echo ${{ steps.buildx.outputs.platforms }}
  34. - name: Build Debian Packages
  35. run: make debian-packages
  36. - name: List generated files
  37. run: ls -l *.deb
  38. build-packages-manually:
  39. if: github.event_name == 'workflow_dispatch'
  40. name: Build Packages Manually
  41. runs-on: ubuntu-latest
  42. steps:
  43. - uses: actions/checkout@v6
  44. with:
  45. fetch-depth: 0
  46. - name: Set up QEMU
  47. uses: docker/setup-qemu-action@v4
  48. - name: Set up Docker Buildx
  49. uses: docker/setup-buildx-action@v4
  50. id: buildx
  51. with:
  52. install: true
  53. - name: Available Docker Platforms
  54. run: echo ${{ steps.buildx.outputs.platforms }}
  55. - name: Build Debian Packages
  56. run: make debian-packages
  57. - name: Upload package
  58. uses: actions/upload-artifact@v7
  59. with:
  60. name: packages
  61. path: "*.deb"
  62. if-no-files-found: error
  63. retention-days: 3
  64. publish-packages:
  65. if: github.event_name == 'push' && github.repository_owner == 'miniflux'
  66. name: Publish Packages
  67. runs-on: ubuntu-latest
  68. steps:
  69. - uses: actions/checkout@v6
  70. with:
  71. fetch-depth: 0
  72. - name: Set up QEMU
  73. uses: docker/setup-qemu-action@v4
  74. - name: Set up Docker Buildx
  75. uses: docker/setup-buildx-action@v4
  76. id: buildx
  77. with:
  78. install: true
  79. - name: Available Docker Platforms
  80. run: echo ${{ steps.buildx.outputs.platforms }}
  81. - name: Build Debian Packages
  82. run: make debian-packages
  83. - name: List generated files
  84. run: ls -l *.deb
  85. - name: Upload packages to repository
  86. env:
  87. FURY_TOKEN: ${{ secrets.FURY_TOKEN }}
  88. run: for f in *.deb; do curl -F package=@$f https://$FURY_TOKEN@push.fury.io/miniflux/; done