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 }}