From 5bd466c27d10fae5dbb30b92861d3671ce06248b Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 25 Apr 2022 14:57:53 +0200 Subject: [PATCH] Use board information from json for release builds (#1863) * Use board information from json for release builds --- .github/workflows/release.yml | 68 ++++++++++++++++------------------- 1 file changed, 31 insertions(+), 37 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 896a8f304..56ee9362e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,6 +13,7 @@ jobs: outputs: version: ${{ steps.version_check.outputs.version }} version_dev: ${{ steps.version_check.outputs.version_dev }} + matrix: ${{ steps.generate_matrix.outputs.result }} steps: - uses: actions/checkout@v2 - name: Validate version @@ -34,26 +35,19 @@ jobs: echo "::set-output name=version::${major}.${build}" fi echo "::set-output name=version_dev::${tag_dev}" + - name: Create build matrix + uses: actions/github-script@v4 + id: generate_matrix + with: + script: | + const boards = require('./.github/workflows/matrix.json') + return { "board": boards } build: - name: Release build for ${{ matrix.board.name }} + name: Release build for ${{ matrix.board.id }} needs: validate_release strategy: - matrix: - board: - - {"name": "ova", "output": "ova", "runner": "x86-64-runner"} - - {"name": "generic_x86_64", "output": "generic-x86-64", "runner": "x86-64-runner"} - - {"name": "khadas_vim3", "output": "khadas-vim3", "runner": "aarch64-runner"} - - {"name": "odroid_c2", "output": "odroid-c2", "runner": "aarch64-runner"} - - {"name": "odroid_c4", "output": "odroid-c4", "runner": "aarch64-runner"} - - {"name": "odroid_n2", "output": "odroid-n2", "runner": "aarch64-runner"} - - {"name": "odroid_xu4", "output": "odroid-xu4" , "runner": "aarch64-runner"} - - {"name": "rpi2", "output": "rpi2", "runner": "arm-runner"} - - {"name": "rpi3", "output": "rpi3", "runner": "arm-runner"} - - {"name": "rpi3_64", "output": "rpi3-64", "runner": "aarch64-runner"} - - {"name": "rpi4", "output": "rpi4", "runner": "arm-runner"} - - {"name": "rpi4_64", "output": "rpi4-64", "runner": "aarch64-runner"} - - {"name": "tinker", "output": "tinker", "runner": "arm-runner"} + matrix: ${{ fromJson(needs.validate_release.outputs.matrix) }} runs-on: ${{ matrix.board.runner }} steps: @@ -81,17 +75,17 @@ jobs: -e BUILDER_UID="${BUILDER_UID}" -e BUILDER_GID="${BUILDER_GID}" \ -v "${{ matrix.board.runner }}-build-cache:/cache" \ -v "/build/output" \ - haos-builder make BUILDDIR=/build VERSION_DEV=${{ needs.validate_release.outputs.version_dev }} ${{ matrix.board.name }} + haos-builder make BUILDDIR=/build VERSION_DEV=${{ needs.validate_release.outputs.version_dev }} ${{ matrix.board.defconfig }} - name: Upload disk image - if: ${{ matrix.board.name != 'ova' }} + if: ${{ matrix.board.id != 'ova' }} uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.img.xz - asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.img.xz + asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.img.xz + asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.img.xz asset_content_type: application/x-xz - name: Upload rauc update @@ -100,63 +94,63 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.raucb - asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.raucb + asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.raucb + asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.raucb asset_content_type: application/octet-stream - name: Upload ova image - if: ${{ matrix.board.name == 'ova' }} + if: ${{ matrix.board.id == 'ova' }} uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.ova - asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.ova + asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.ova + asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.ova asset_content_type: application/x-tar - name: Upload qcow2 image - if: ${{ matrix.board.name == 'ova' || matrix.board.name == 'generic-aarch64' }} + if: ${{ matrix.board.id == 'ova' || matrix.board.id == 'generic-aarch64' }} uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.qcow2.xz - asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.qcow2.xz + asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.qcow2.xz + asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.qcow2.xz asset_content_type: application/x-xz - name: Upload vdi image - if: ${{ matrix.board.name == 'ova' }} + if: ${{ matrix.board.id == 'ova' }} uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.vdi.zip - asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.vdi.zip + asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.vdi.zip + asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.vdi.zip asset_content_type: application/zip - name: Upload vhdx image - if: ${{ matrix.board.name == 'ova' }} + if: ${{ matrix.board.id == 'ova' }} uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.vhdx.zip - asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.vhdx.zip + asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.vhdx.zip + asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.vhdx.zip asset_content_type: application/zip - name: Upload vmdk image - if: ${{ matrix.board.name == 'ova' || matrix.board.name == 'generic-aarch64' }} + if: ${{ matrix.board.id == 'ova' || matrix.board.id == 'generic-aarch64' }} uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ github.event.release.upload_url }} - asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.vmdk.zip - asset_name: haos_${{ matrix.board.output }}-${{ needs.validate_release.outputs.version }}.vmdk.zip + asset_path: ${{ github.workspace }}/release/haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.vmdk.zip + asset_name: haos_${{ matrix.board.id }}-${{ needs.validate_release.outputs.version }}.vmdk.zip asset_content_type: application/zip bump_version: