name: Google Cloud Import on: push: branches: - gcetest workflow_dispatch: env: MAKEFLAGS: "-j4 GITVERSION=${{ github.sha }}" jobs: build: name: Build / ${{ matrix.arch }}-${{ matrix.platform }} runs-on: ubuntu-latest strategy: fail-fast: false matrix: include: - arch: arm64 platform: efi - arch: x86_64 platform: efi - arch: x86_64 platform: pcbios container: image: ghcr.io/ipxe/ipxe-builder-${{ matrix.arch }} env: bindir: bin-${{ matrix.arch }}-${{ matrix.platform }} steps: - name: Check out code uses: actions/checkout@v6 - name: Build working-directory: src run: | make CONFIG=cloud EMBED=config/cloud/gce.ipxe \ ${{ env.bindir }}/ipxe.usb - name: Upload uses: actions/upload-artifact@v6 with: name: ${{ env.bindir }} if-no-files-found: error path: | src/${{ env.bindir }}/ipxe.usb import: name: Import runs-on: ubuntu-latest needs: - build container: image: ghcr.io/ipxe/ipxe-builder-cloud env: binaries: >- bin-arm64-efi/ipxe.usb bin-x86_64-efi/ipxe.usb bin-x86_64-pcbios/ipxe.usb family: >- ${{ github.ref == 'refs/heads/gcetest' && '--family ipxetest' || '' }} environment: gce-import permissions: id-token: write contents: read steps: - name: Check out code uses: actions/checkout@v6 - name: Download uses: actions/download-artifact@v7 with: path: src pattern: "bin-*" - name: Log in uses: 'google-github-actions/auth@v3' with: project_id: ${{ vars.GCLOUD_PROJECT }} workload_identity_provider: ${{ vars.GCLOUD_WORKLOAD_IDP }} service_account: ${{ vars.GCLOUD_SERVICE_ACCOUNT }} - name: Import working-directory: src run: | ../contrib/cloud/gce-import \ --public \ --overwrite \ --project ${GCLOUD_PROJECT} \ ${{ env.family }} \ ${{ env.binaries }}