123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- name: Build void images
- on:
- workflow_dispatch:
- inputs:
- datecode:
- description: "Override datecode for images"
- required: false
- type: string
- mirror:
- description: "Mirror to use"
- default: "https://repo-ci.voidlinux.org/current"
- required: false
- type: string
- live_archs:
- description: "Archs to build live ISOs for"
- default: "x86_64 x86_64-musl i686"
- required: false
- type: string
- live_flavors:
- description: "Flavors to build live ISOs for"
- default: "base xfce"
- required: false
- type: string
- rootfs:
- description: "Archs to build ROOTFSes for"
- default: "x86_64 x86_64-musl i686 armv6l armv6l-musl armv7l armv7l-musl aarch64 aarch64-musl"
- required: false
- type: string
- platformfs:
- description: "Platforms to build PLATFORMFSes for"
- default: "rpi-armv6l rpi-armv6l-musl rpi-armv7l rpi-armv7l-musl rpi-aarch64 rpi-aarch64-musl"
- required: false
- type: string
- sbc_imgs:
- description: "Platforms to build SBC images for"
- default: "rpi-armv6l rpi-armv6l-musl rpi-armv7l rpi-armv7l-musl rpi-aarch64 rpi-aarch64-musl"
- required: false
- type: string
- concurrency:
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: true
- jobs:
- build:
- name: Build
- runs-on: ubuntu-latest
- defaults:
- run:
- shell: bash
- container:
- image: 'ghcr.io/void-linux/void-linux:20230204RC01-full-x86_64'
- options: --privileged
- volumes:
- - /dev:/dev
- env:
- PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
- DATECODE: "${{ inputs.datecode }}"
- LIVE_ARCHS: "${{ inputs.live_archs }}"
- LIVE_FLAVORS: "${{ inputs.live_flavors }}"
- ROOTFS_ARCHS: "${{ inputs.rootfs }}"
- PLATFORMS: "${{ inputs.platformfs }}"
- SBC_IMGS: "${{ inputs.sbc_imgs }}"
- REPO: "${{ inputs.mirror }}"
- steps:
- - name: Prepare container
- shell: sh
- run: |
- # Switch to repo-ci mirror
- mkdir -p /etc/xbps.d && cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/
- sed -i 's|https://repo-default.voidlinux.org/current|'"$REPO"'|g' /etc/xbps.d/*-repository-*.conf
- # Sync and upgrade once, assume error comes from xbps update
- xbps-install -Syu || xbps-install -yu xbps
- # Upgrade again (in case there was a xbps update)
- xbps-install -yu
- # Install depedencies
- xbps-install -yu bash make git kmod xz lzo qemu-user-static outils dosfstools e2fsprogs
- - name: Clone and checkout
- uses: classabbyamp/treeless-checkout-action@v1
- - name: Prepare environment
- run: |
- echo "DATECODE=$(date -u "+%Y%m%d")" >> $GITHUB_ENV
- echo "MKLIVE_REV=${GITHUB_SHA:0:8}" >> $GITHUB_ENV
- - name: Build live ISOs
- run: |
- if ! [[ "$LIVE_ARCHS" = "none" || "$LIVE_FLAVORS" = "none" ]]; then
- make live-iso-all{-print,} \
- LIVE_ARCHS="$LIVE_ARCHS" LIVE_FLAVORS="$LIVE_FLAVORS" \
- SUDO= REPOSITORY="$REPO" DATECODE=$DATECODE
- else
- echo "Nothing to do..."
- fi
- - name: Build ROOTFSes
- run: |
- if ! [ "$ROOTFS_ARCHS" = "none" ]; then
- make rootfs-all{-print,} \
- SUDO= ARCHS="$ROOTFS_ARCHS" REPOSITORY="$REPO" DATECODE=$DATECODE
- else
- echo "Nothing to do..."
- fi
- - name: Build PLATFORMFSes
- run: |
- if ! [ "$PLATFORMS" = "none" ]; then
- make platformfs-all{-print,} \
- SUDO= PLATFORMS="$PLATFORMS" REPOSITORY="$REPO" DATECODE=$DATECODE
- else
- echo "Nothing to do..."
- fi
- - name: Build SBC images
- run: |
- if ! [ "$SBC_IMGS" = "none" ]; then
- make images-all-sbc{-print,} \
- SUDO= SBC_IMGS="$SBC_IMGS" REPOSITORY="$REPO" DATECODE=$DATECODE
- else
- echo "Nothing to do..."
- fi
- - name: Prepare artifacts for upload
- run: |
- make dist checksum DATECODE=$DATECODE
- - name: Upload artifacts
- uses: actions/upload-artifact@v3
- with:
- name: void-live-${{ env.DATECODE }}
- path: distdir-${{ env.DATECODE }}/*
- if-no-files-found: error
|