2023-04-08 12:08:07 +00:00
|
|
|
name: Build void images
|
|
|
|
|
|
|
|
on:
|
|
|
|
workflow_dispatch:
|
|
|
|
inputs:
|
|
|
|
datecode:
|
|
|
|
description: "Override datecode for images"
|
|
|
|
required: false
|
|
|
|
type: string
|
2024-02-16 04:08:50 -01:00
|
|
|
live_iso_flag:
|
|
|
|
description: "Build live ISOs"
|
|
|
|
default: true
|
|
|
|
required: true
|
|
|
|
type: boolean
|
2023-04-08 12:08:07 +00:00
|
|
|
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
|
2024-02-16 04:08:50 -01:00
|
|
|
rootfs_flag:
|
|
|
|
description: "Build ROOTFSes"
|
|
|
|
default: true
|
|
|
|
required: true
|
|
|
|
type: boolean
|
2023-04-08 12:08:07 +00:00
|
|
|
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
|
2024-02-16 04:08:50 -01:00
|
|
|
platformfs_flag:
|
|
|
|
description: "Build PLATFORMFSes"
|
|
|
|
default: true
|
|
|
|
required: true
|
|
|
|
type: boolean
|
2023-04-08 12:08:07 +00:00
|
|
|
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
|
2024-02-16 04:08:50 -01:00
|
|
|
sbc_img_flag:
|
|
|
|
description: "Build SBC Images"
|
|
|
|
default: true
|
|
|
|
required: true
|
|
|
|
type: boolean
|
2023-04-08 12:08:07 +00:00
|
|
|
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
|
|
|
|
|
2024-02-16 04:08:50 -01:00
|
|
|
defaults:
|
|
|
|
run:
|
|
|
|
shell: bash
|
|
|
|
|
2023-04-08 12:08:07 +00:00
|
|
|
jobs:
|
2024-02-16 04:08:50 -01:00
|
|
|
prepare:
|
|
|
|
name: Prepare Environment
|
2023-04-08 12:08:07 +00:00
|
|
|
runs-on: ubuntu-latest
|
2024-02-16 04:08:50 -01:00
|
|
|
outputs:
|
|
|
|
datecode: ${{ steps.prep.outputs.datecode }}
|
|
|
|
revision: ${{ steps.prep.outputs.revision }}
|
|
|
|
mirror: ${{ steps.prep.outputs.mirror }}
|
2023-04-08 12:08:07 +00:00
|
|
|
|
2024-02-16 04:08:50 -01:00
|
|
|
steps:
|
|
|
|
- name: Prepare Environment
|
|
|
|
id: prep
|
|
|
|
run: |
|
|
|
|
if [ -z "${{ inputs.datecode }}" ]; then
|
|
|
|
echo "datecode=$(date -u "+%Y%m%d")" >> $GITHUB_OUTPUT
|
|
|
|
else
|
|
|
|
echo "datecode=${{ inputs.datecode }}" >> $GITHUB_OUTPUT
|
|
|
|
fi
|
|
|
|
echo "revision=${GITHUB_SHA:0:8}" >> $GITHUB_OUTPUT
|
|
|
|
echo "mirror=https://repo-ci.voidlinux.org/current" >> $GITHUB_OUTPUT
|
|
|
|
|
|
|
|
build-live-isos:
|
|
|
|
name: Build Live ISOs
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
needs: prepare
|
|
|
|
if: ${{ inputs.live_iso_flag }}
|
2023-04-08 12:08:07 +00:00
|
|
|
|
|
|
|
container:
|
2024-02-16 04:08:50 -01:00
|
|
|
image: 'ghcr.io/void-linux/void-glibc-full:20231230R1'
|
2023-04-08 12:08:07 +00:00
|
|
|
options: --privileged
|
|
|
|
volumes:
|
|
|
|
- /dev:/dev
|
|
|
|
env:
|
|
|
|
PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
|
2024-02-16 04:08:50 -01:00
|
|
|
MKLIVE_REV: "${{ needs.prepare.outputs.revision }}"
|
2023-04-08 12:08:07 +00:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Prepare container
|
|
|
|
shell: sh
|
|
|
|
run: |
|
2024-02-16 04:08:50 -01:00
|
|
|
# Switch to mirror
|
2023-04-08 12:08:07 +00:00
|
|
|
mkdir -p /etc/xbps.d && cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/
|
2024-02-16 04:08:50 -01:00
|
|
|
sed -i 's|https://repo-default.voidlinux.org/current|'"${{ needs.prepare.outputs.mirror }}"'|g' \
|
|
|
|
/etc/xbps.d/*-repository-*.conf
|
2023-04-08 12:08:07 +00:00
|
|
|
# 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
|
2024-02-16 04:08:50 -01:00
|
|
|
|
2023-04-08 12:08:07 +00:00
|
|
|
- name: Build live ISOs
|
|
|
|
run: |
|
2024-02-16 04:08:50 -01:00
|
|
|
make live-iso-all-print live-iso-all \
|
|
|
|
SUDO= REPOSITORY="${{ needs.prepare.outputs.mirror }}" \
|
|
|
|
DATECODE="${{ needs.prepare.outputs.datecode }}" \
|
|
|
|
LIVE_ARCHS="${{ inputs.live_archs }}" LIVE_FLAVORS="${{ inputs.live_flavors }}"
|
|
|
|
|
|
|
|
- name: Prepare artifacts for upload
|
|
|
|
run: |
|
|
|
|
make dist DATECODE="${{ needs.prepare.outputs.datecode }}"
|
|
|
|
- name: Upload artifacts
|
|
|
|
uses: actions/upload-artifact@v4
|
|
|
|
with:
|
|
|
|
name: void-iso-${{ needs.prepare.outputs.datecode }}
|
|
|
|
path: |
|
|
|
|
distdir-${{ needs.prepare.outputs.datecode }}/*
|
|
|
|
if-no-files-found: error
|
|
|
|
|
|
|
|
build-rootfs:
|
|
|
|
name: Build ROOTFSes
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
needs: prepare
|
|
|
|
if: ${{ inputs.rootfs_flag }}
|
|
|
|
|
|
|
|
container:
|
|
|
|
image: 'ghcr.io/void-linux/void-glibc-full:20231230R1'
|
|
|
|
options: --privileged
|
|
|
|
volumes:
|
|
|
|
- /dev:/dev
|
|
|
|
env:
|
|
|
|
PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
|
|
|
|
MKLIVE_REV: "${{ needs.prepare.outputs.revision }}"
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Prepare container
|
|
|
|
shell: sh
|
|
|
|
run: |
|
|
|
|
# Switch to 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|'"${{ needs.prepare.outputs.mirror }}"'|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
|
|
|
|
|
2023-04-08 12:08:07 +00:00
|
|
|
- name: Build ROOTFSes
|
|
|
|
run: |
|
2024-02-16 04:08:50 -01:00
|
|
|
make rootfs-all-print rootfs-all \
|
|
|
|
SUDO= REPOSITORY="${{ needs.prepare.outputs.mirror }}" \
|
|
|
|
DATECODE="${{ needs.prepare.outputs.datecode }}" \
|
|
|
|
ARCHS="${{ inputs.rootfs }}"
|
|
|
|
|
|
|
|
- name: Prepare artifacts for upload
|
|
|
|
run: |
|
|
|
|
make dist DATECODE="${{ needs.prepare.outputs.datecode }}"
|
|
|
|
- name: Upload artifacts
|
|
|
|
uses: actions/upload-artifact@v4
|
|
|
|
with:
|
|
|
|
name: void-rootfs-${{ needs.prepare.outputs.datecode }}
|
|
|
|
path: |
|
|
|
|
distdir-${{ needs.prepare.outputs.datecode }}/*
|
|
|
|
if-no-files-found: error
|
|
|
|
|
|
|
|
build-platformfs:
|
|
|
|
name: Build PLATFORMFSes
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
needs: prepare
|
|
|
|
if: ${{ inputs.platformfs_flag }}
|
|
|
|
|
|
|
|
container:
|
|
|
|
image: 'ghcr.io/void-linux/void-glibc-full:20231230R1'
|
|
|
|
options: --privileged
|
|
|
|
volumes:
|
|
|
|
- /dev:/dev
|
|
|
|
env:
|
|
|
|
PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
|
|
|
|
MKLIVE_REV: "${{ needs.prepare.outputs.revision }}"
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Prepare container
|
|
|
|
shell: sh
|
|
|
|
run: |
|
|
|
|
# Switch to 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|'"${{ needs.prepare.outputs.mirror }}"'|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
|
|
|
|
|
2023-04-08 12:08:07 +00:00
|
|
|
- name: Build PLATFORMFSes
|
|
|
|
run: |
|
2024-02-16 04:08:50 -01:00
|
|
|
make platformfs-all-print platformfs-all \
|
|
|
|
SUDO= REPOSITORY="${{ needs.prepare.outputs.mirror }}" \
|
|
|
|
DATECODE="${{ needs.prepare.outputs.datecode }}" \
|
|
|
|
PLATFORMS="${{ inputs.platformfs }}"
|
|
|
|
|
|
|
|
- name: Prepare artifacts for upload
|
2023-04-08 12:08:07 +00:00
|
|
|
run: |
|
2024-02-16 04:08:50 -01:00
|
|
|
make dist DATECODE="${{ needs.prepare.outputs.datecode }}"
|
|
|
|
- name: Upload artifacts
|
|
|
|
uses: actions/upload-artifact@v4
|
|
|
|
with:
|
|
|
|
name: void-platformfs-${{ needs.prepare.outputs.datecode }}
|
|
|
|
path: |
|
|
|
|
distdir-${{ needs.prepare.outputs.datecode }}/*
|
|
|
|
!distdir-${{ needs.prepare.outputs.datecode }}/*ROOTFS*
|
|
|
|
if-no-files-found: error
|
|
|
|
|
|
|
|
build-sbc-img:
|
|
|
|
name: Build SBC Images
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
needs: prepare
|
|
|
|
if: ${{ inputs.sbc_img_flag }}
|
|
|
|
|
|
|
|
container:
|
|
|
|
image: 'ghcr.io/void-linux/void-glibc-full:20231230R1'
|
|
|
|
options: --privileged
|
|
|
|
volumes:
|
|
|
|
- /dev:/dev
|
|
|
|
env:
|
|
|
|
PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
|
|
|
|
MKLIVE_REV: "${{ needs.prepare.outputs.revision }}"
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Prepare container
|
|
|
|
shell: sh
|
|
|
|
run: |
|
|
|
|
# Switch to 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|'"${{ needs.prepare.outputs.mirror }}"'|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: Build SBC Images
|
|
|
|
run: |
|
|
|
|
make images-all-sbc-print images-all-sbc \
|
|
|
|
SUDO= REPOSITORY="${{ needs.prepare.outputs.mirror }}" \
|
|
|
|
DATECODE="${{ needs.prepare.outputs.datecode }}" \
|
|
|
|
SBC_IMGS="${{ inputs.sbc_imgs }}"
|
|
|
|
|
|
|
|
- name: Prepare artifacts for upload
|
|
|
|
run: |
|
|
|
|
make dist DATECODE="${{ needs.prepare.outputs.datecode }}"
|
|
|
|
- name: Upload artifacts
|
|
|
|
uses: actions/upload-artifact@v4
|
|
|
|
with:
|
|
|
|
name: void-sbc-img-${{ needs.prepare.outputs.datecode }}
|
|
|
|
path: |
|
|
|
|
distdir-${{ needs.prepare.outputs.datecode }}/*
|
|
|
|
!distdir-${{ needs.prepare.outputs.datecode }}/*ROOTFS*
|
|
|
|
!distdir-${{ needs.prepare.outputs.datecode }}/*PLATFORMFS*
|
|
|
|
if-no-files-found: error
|
|
|
|
|
|
|
|
merge-artifacts:
|
|
|
|
name: Combine artifacts
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
if: ${{ always() }}
|
|
|
|
needs:
|
|
|
|
- prepare
|
|
|
|
- build-live-isos
|
|
|
|
- build-rootfs
|
|
|
|
- build-platformfs
|
|
|
|
- build-sbc-img
|
|
|
|
|
|
|
|
container:
|
|
|
|
image: 'ghcr.io/void-linux/void-glibc-full:20231230R1'
|
|
|
|
env:
|
|
|
|
PATH: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin:/usr/local/bin:/tmp/bin'
|
|
|
|
MKLIVE_REV: "${{ needs.prepare.outputs.revision }}"
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Prepare container
|
|
|
|
shell: sh
|
|
|
|
run: |
|
|
|
|
# Switch to 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|'"${{ needs.prepare.outputs.mirror }}"'|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 outils
|
|
|
|
- name: Clone and checkout
|
|
|
|
uses: classabbyamp/treeless-checkout-action@v1
|
|
|
|
|
|
|
|
- name: Download artifacts
|
|
|
|
uses: actions/download-artifact@v4
|
|
|
|
with:
|
|
|
|
path: distdir-${{ needs.prepare.outputs.datecode }}
|
|
|
|
merge-multiple: true
|
2023-04-08 12:08:07 +00:00
|
|
|
- name: Prepare artifacts for upload
|
|
|
|
run: |
|
2024-02-16 04:08:50 -01:00
|
|
|
make checksum DATECODE="${{ needs.prepare.outputs.datecode }}"
|
2023-04-08 12:08:07 +00:00
|
|
|
- name: Upload artifacts
|
2024-02-16 04:08:50 -01:00
|
|
|
uses: actions/upload-artifact@v4
|
2023-04-08 12:08:07 +00:00
|
|
|
with:
|
2024-02-16 04:08:50 -01:00
|
|
|
name: void-live-${{ needs.prepare.outputs.datecode }}
|
|
|
|
path: |
|
|
|
|
distdir-${{ needs.prepare.outputs.datecode }}/*
|
2023-04-08 12:08:07 +00:00
|
|
|
if-no-files-found: error
|