blob: ed4763e4792449af557ba01f1974f4a360466450 [file] [log] [blame]
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 }}