blob: ae3e7c563fd46697aa99fc8071bb00161952ac44 [file] [log] [blame]
name: AWS Import
on:
push:
branches:
- awstest
workflow_dispatch:
env:
MAKEFLAGS: "-j4 GITVERSION=${{ github.sha }}"
jobs:
build:
name: Build / ${{ matrix.arch }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- arch: arm64
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/aws.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:
amilist: >-
${{ github.ref == 'refs/heads/awstest' &&
'ipxetest-amilist.txt' || 'amilist.txt' }}
binaries: >-
bin-arm64-efi/ipxe.usb
bin-x86_64-pcbios/ipxe.usb
bucket: ${{ vars.AWS_BUCKET }}
family: >-
${{ github.ref == 'refs/heads/awstest' &&
'--family ipxetest' || '' }}
retain: >-
${{ github.ref == 'refs/heads/awstest' &&
'0' || '3' }}
environment: aws-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: aws-actions/configure-aws-credentials@v6
with:
role-to-assume: ${{ vars.AWS_ROLE }}
aws-region: ${{ vars.AWS_REGION }}
- name: Import
working-directory: src
run: |
../contrib/cloud/aws-import \
--public \
--overwrite \
--retain ${{ env.retain }} \
--wiki ${{ env.amilist }} \
--bucket ${{ env.bucket }} \
${{ env.family }} \
${{ env.binaries }}
- name: Upload
uses: actions/upload-artifact@v6
with:
name: amilist
if-no-files-found: error
path: |
src/${{ env.amilist }}