name: iStore Intl Builder on: workflow_dispatch: inputs: target: description: 'build target ["x86_64", "rk35xx", "rk33xx", "rpi4", "all"]' required: true default: 'all' env: TZ: Asia/Shanghai jobs: matrix: runs-on: ubuntu-latest outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} steps: - name: Detect build target id: set-matrix env: MATRIX_TARGET: ${{ github.event.inputs.target }} run: | if [ "x${MATRIX_TARGET}" = "x" -o "x${MATRIX_TARGET}" = "xall" ]; then \ echo "matrix={\"target\":[\"x86_64\", \"rk35xx\", \"rk33xx\", \"rpi4\"]}" >> $GITHUB_OUTPUT; \ else \ targets=""; \ for target in ${MATRIX_TARGET}; do \ targets="$targets, \"$target\""; done; \ echo "matrix={\"target\":[${targets#, }]}" >> $GITHUB_OUTPUT; \ fi build: needs: matrix runs-on: ubuntu-latest name: iStore Intl for ${{ matrix.target }} strategy: matrix: ${{fromJson(needs.matrix.outputs.matrix)}} steps: - name: Checkout uses: actions/checkout@main with: fetch-depth: 1 - name: Import Env env: MATRIX_TARGET: ${{ matrix.target }} run: cat env/${MATRIX_TARGET}.env >> "$GITHUB_ENV" - name: Initialization environment env: DEBIAN_FRONTEND: noninteractive run: | sudo -E apt-get -qq update sudo -E apt-get -qq install binutils bzip2 xz-utils unzip git wget patch device-tree-compiler sudo -E apt-get -qq clean sudo timedatectl set-timezone "$TZ" - name: Download IB run: | mkdir dl wget -O dl/${IB_NAME}.tar.xz ${IB_URL}${IB_NAME}.tar.xz wget -O dl/${MF_NAME} ${IB_URL}${MF_NAME} wget -O dl/sha256sums ${IB_URL}sha256sums [ -s dl/sha256sums ] [ -s dl/${MF_NAME} ] [ -s dl/${IB_NAME}.tar.xz ] grep -Fq ${MF_NAME} dl/sha256sums grep -Fq ${IB_NAME}.tar.xz dl/sha256sums cd dl && sha256sum -c --ignore-missing --status sha256sums - name: Unpack IB run: | mkdir ib tar -C ib --strip-components=1 -xJf dl/${IB_NAME}.tar.xz cp -a src/* ib/ ls patches/ | sort | xargs -n1 sh -c 'patch -p1 -d ib -i ../patches/$0' sed -i 's/ unofficial/ oversea/' ib/Makefile - name: Build run: | cp dl/${MF_NAME} ib/target.manifest echo "istoreos-intl - *" >> ib/target.manifest cd ib && make -f multi.mk image_multi - name: Pack run: | cd ib make -f release.mk IB=1 make -f multi.mk release_env >> "$GITHUB_ENV" - name: Release run: | cd ib diff ../dl/${MF_NAME} ${IB_BIN_DIR}/${MF_NAME}