build-packages.yml 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. name: Build XBPS Packages
  2. on:
  3. workflow_dispatch:
  4. push:
  5. paths:
  6. - 'srcpkgs/**'
  7. env:
  8. ARCH: x86_64
  9. HOST: x86_64
  10. PLATFORM: linux/amd64
  11. PACKAGES: "brave,ferdium,librewolf,vscodium,obsidian,onlyoffice,freetube,tutanota-desktop,drawio-desktop"
  12. jobs:
  13. build-packages:
  14. runs-on: ubuntu-latest
  15. container:
  16. image: ghcr.io/void-linux/void-buildroot-glibc:latest
  17. steps:
  18. - name: Setup environment
  19. run: |
  20. export PATH="/usr/libexec/chroot-git:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin"
  21. mkdir -p /etc/xbps.d
  22. cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/
  23. sed -i 's|repo-default|repo-ci|g' /etc/xbps.d/*-repository-*.conf
  24. xbps-install -Syu xbps
  25. xbps-install -Syu
  26. xbps-install -y tar curl openssh unzip git jq
  27. - name: Checkout repositories
  28. uses: actions/checkout@v4
  29. with:
  30. repository: void-linux/void-packages
  31. path: void-packages
  32. - name: Checkout custom packages
  33. uses: actions/checkout@v4
  34. with:
  35. path: custom-packages
  36. - name: Setup and build packages
  37. run: |
  38. # Setup void-packages
  39. cp -r custom-packages/srcpkgs/* void-packages/srcpkgs/
  40. cd void-packages
  41. ln -s "$(pwd)" /hostrepo
  42. ./common/travis/set_mirror.sh
  43. ./common/travis/prepare.sh
  44. ./common/travis/fetch-xtools.sh
  45. # Build packages
  46. mkdir -p ~/packages
  47. IFS=',' read -ra PKGS <<< "${PACKAGES}"
  48. for pkg in "${PKGS[@]}"; do
  49. pkg_trim=$(echo "$pkg" | xargs)
  50. ./xbps-src -j$(nproc) -s -H ~/hostdir pkg "$pkg_trim"
  51. cp ~/hostdir/binpkgs/"$pkg_trim"*.xbps ~/packages/
  52. done
  53. - name: Sign and package
  54. env:
  55. PRIVATE_PEM: ${{ secrets.PRIVATE_PEM }}
  56. PRIVATE_PEM_PASSPHRASE: ${{ secrets.PRIVATE_PEM_PASSPHRASE }}
  57. run: |
  58. cd ~/packages
  59. xbps-rindex -a *
  60. temp_key=$(mktemp)
  61. echo "$PRIVATE_PEM" > "$temp_key"
  62. export XBPS_PASSPHRASE=$PRIVATE_PEM_PASSPHRASE
  63. chmod 600 "$temp_key"
  64. xbps-rindex --privkey "$temp_key" --sign --signedby "void-packages-github-actions" ~/packages
  65. xbps-rindex --privkey "$temp_key" --sign-pkg ~/packages/*.xbps
  66. rm -f "$temp_key"
  67. tar -czvf xbps_packages.tar.gz *
  68. ls -lah
  69. - name: Create Release
  70. uses: softprops/action-gh-release@v1
  71. env:
  72. GITHUB_TOKEN: ${{ secrets.TOKEN }}
  73. with:
  74. files: |
  75. /github/home/packages/*.xbps
  76. /github/home/packages/*.sig2
  77. /github/home/packages/x86_64-repodata
  78. /github/home/packages/xbps_packages.tar.gz
  79. tag_name: latest
  80. name: Latest Build
  81. body: |
  82. Latest build of XBPS packages
  83. Built on: ${{ github.event.repository.updated_at }}
  84. prerelease: false