123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- name: Build XBPS Packages
- on:
- workflow_dispatch:
- push:
- paths:
- - "srcpkgs/**"
- permissions:
- contents: write
- packages: write
- env:
- ARCH: x86_64
- HOST: x86_64
- PLATFORM: linux/amd64
- PACKAGES: "brave,ferdium,librewolf,vscodium,obsidian,onlyoffice,freetube,tutanota-desktop,drawio-desktop,sklauncher"
- jobs:
- build-packages:
- runs-on: ubuntu-latest
- container:
- image: ghcr.io/void-linux/void-buildroot-glibc:latest
- steps:
- - name: Setup environment
- run: |
- export PATH="/usr/libexec/chroot-git:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin"
- mkdir -p /etc/xbps.d
- cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/
- sed -i 's|repo-default|repo-ci|g' /etc/xbps.d/*-repository-*.conf
- xbps-install -Syu xbps
- xbps-install -Syu
- xbps-install -y tar curl openssh unzip git jq github-cli
- - name: Checkout repositories
- uses: actions/checkout@v4
- with:
- repository: void-linux/void-packages
- path: void-packages
- - name: Checkout custom packages
- uses: actions/checkout@v4
- with:
- path: custom-packages
- - name: Delete existing release assets
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
- # Get the release ID for the 'latest' tag
- RELEASE_ID=$(gh api \
- -H "Accept: application/vnd.github+json" \
- /repos/$GITHUB_REPOSITORY/releases/tags/latest \
- --jq '.id' || echo "")
- if [ ! -z "$RELEASE_ID" ]; then
- # Get all assets for this release
- assets=$(gh api \
- -H "Accept: application/vnd.github+json" \
- /repos/$GITHUB_REPOSITORY/releases/$RELEASE_ID/assets \
- --jq '.[].id' || echo "")
-
- # Delete each asset
- for asset_id in $assets; do
- gh api \
- --method DELETE \
- -H "Accept: application/vnd.github+json" \
- /repos/$GITHUB_REPOSITORY/releases/assets/$asset_id
- done
-
- echo "All assets from the latest release have been deleted"
- else
- echo "No release with tag 'latest' found or unable to access release"
- fi
- - name: Setup and build packages
- run: |
- # Setup void-packages
- cp -r custom-packages/srcpkgs/* void-packages/srcpkgs/
- cd void-packages
- ln -s "$(pwd)" /hostrepo
- ./common/travis/set_mirror.sh
- ./common/travis/prepare.sh
- ./common/travis/fetch-xtools.sh
- # Build packages
- mkdir -p ~/packages
- IFS=',' read -ra PKGS <<< "${PACKAGES}"
- for pkg in "${PKGS[@]}"; do
- pkg_trim=$(echo "$pkg" | xargs)
- ./xbps-src -j$(nproc) -s -H ~/hostdir pkg "$pkg_trim"
- cp ~/hostdir/binpkgs/"$pkg_trim"*.xbps ~/packages/
- done
- - name: Sign and package
- env:
- PRIVATE_PEM: ${{ secrets.PRIVATE_PEM }}
- PRIVATE_PEM_PASSPHRASE: ${{ secrets.PRIVATE_PEM_PASSPHRASE }}
- run: |
- cd ~/packages
- xbps-rindex -a *
- temp_key=$(mktemp)
- echo "$PRIVATE_PEM" > "$temp_key"
- export XBPS_PASSPHRASE=$PRIVATE_PEM_PASSPHRASE
- chmod 600 "$temp_key"
- xbps-rindex --privkey "$temp_key" --sign --signedby "void-packages-github-actions" ~/packages
- xbps-rindex --privkey "$temp_key" --sign-pkg ~/packages/*.xbps
- rm -f "$temp_key"
- tar -czvf xbps_packages.tar.gz *
- ls -lah
- - name: Create Release
- uses: softprops/action-gh-release@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- files: |
- /github/home/packages/*.xbps
- /github/home/packages/*.sig2
- /github/home/packages/x86_64-repodata
- /github/home/packages/xbps_packages.tar.gz
- tag_name: latest
- name: Latest Build
- body: |
- Latest build of XBPS packages
- Built on: ${{ github.event.repository.updated_at }}
- prerelease: false
|