name: Test ISO on: workflow_call: inputs: pr: required: false type: string parent_job_name: required: true type: string jobs: load_vars: name: Load Variables uses: ./.github/workflows/build_vars.yml test-iso: name: Test ISO env: JOB_NAME: Test ISO runs-on: ubuntu-latest needs: - load_vars permissions: contents: read statuses: write continue-on-error: false strategy: fail-fast: false matrix: ${{ fromJson(needs.load_vars.outputs.BUILD_MATRIX) }} steps: - name: Checkout uses: actions/checkout@v4 with: submodules: recursive - name: Switch branch if: inputs.pr env: GITHUB_USER: ${{ github.actor }} GITHUB_TOKEN: ${{ github.token }} run: | sudo apt-get update sudo apt-get install -y hub hub pr checkout ${{ inputs.pr }} echo "sha=$(git rev-parse HEAD)" >> $GITHUB_ENV - name: Get Current Job Log URL if: inputs.pr && always() uses: Tiryoh/gha-jobid-action@v1 id: jobs with: github_token: ${{ secrets.GITHUB_TOKEN }} job_name: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }}, ${{ matrix.image_repo }}, ${{ image_name }})" per_page: 100 - name: Set status if: inputs.pr && always() uses: myrotvorets/set-commit-status-action@v2.0.1 with: token: ${{ secrets.GITHUB_TOKEN }} status: pending context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }}, ${{ matrix.image_repo }}, ${{ image_name }})" sha: ${{ env.sha }} targetUrl: ${{ steps.jobs.outputs.html_url }} - name: Install test tools run: | sudo apt-get update sudo apt-get install -y make sudo make test/iso/install-deps PACKAGE_MANAGER=apt-get - name: Download generated ISO uses: actions/download-artifact@v4 with: name: ${{ matrix.image_name }}-${{ matrix.version }}${{ matrix.flatpaks == 'false' && '' || format('-{0}', matrix.flatpaks) }} - name: Run ISO checks run: | make test/iso \ ARCH=${{ needs.load_vars.outputs.ARCH}} \ ENROLLMENT_PASSWORD=${{ needs.load_vars.outputs.ENROLLMENT_PASSWORD }} \ ${{ matrix.flatpaks == 'flatpak_refs' && format('FLATPAK_REMOTE_REFS="{0}"', needs.load_vars.outputs.FLATPAK_REMOTE_REFS) || '' }} \ ${{ matrix.flatpaks == 'flatpak_refs_dir' && format('FLATPAK_REMOTE_REFS_DIR="{0}"', needs.load_vars.outputs.FLATPAK_REMOTE_REFS_DIR) || '' }} \ IMAGE_NAME=${{ matrix.image_name }} \ IMAGE_REPO=${{ matrix.image_repo }} \ IMAGE_TAG=${{ matrix.version }} \ ISO_NAME=${{ matrix.image_name }}-${{ matrix.version }}${{ matrix.flatpaks == 'false' && '' || format('-{0}', matrix.flatpaks) }}.iso \ ${{ matrix.repos != '' && format('REPOS="{0}"', matrix.repos) || '' }} \ SECURE_BOOT_KEY_URL=${{ needs.load_vars.outputs.SECURE_BOOT_KEY_URL }} \ VARIANT=${{ needs.load_vars.outputs.VARIANT }} \ VERSION=${{ matrix.version }} - name: Set status if: inputs.pr && always() uses: myrotvorets/set-commit-status-action@v2.0.1 with: token: ${{ secrets.GITHUB_TOKEN }} status: ${{ job.status }} context: "${{ inputs.parent_job_name }} / ${{ env.JOB_NAME }} (${{ matrix.version }}, ${{ matrix.flatpaks }}, ${{ matrix.image_repo }}, ${{ image_name }})" sha: ${{ env.sha }} targetUrl: ${{ steps.jobs.outputs.html_url }}