Skip to content

feat(pci): enable PCI for guests #61

feat(pci): enable PCI for guests

feat(pci): enable PCI for guests #61

Workflow file for this run

name: FC Kernels
on:
push:
permissions:
id-token: write
contents: write
jobs:
build:
name: Build kernels (${{ matrix.arch }})
runs-on: ubuntu-22.04
strategy:
matrix:
arch: [x86_64, arm64]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Build kernels
run: sudo TARGET_ARCH=${{ matrix.arch }} make build
- name: Upload kernels as artifact
uses: actions/upload-artifact@v4
with:
name: kernels-${{ matrix.arch }}-${{ github.run_id }}
path: ./builds
retention-days: 7
publish:
name: Publish kernels
needs: build
if: github.ref_name == 'main'
runs-on: ubuntu-22.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.VERSION_BUMPER_APPID }}
private-key: ${{ secrets.VERSION_BUMPER_SECRET }}
- name: Get the last release
id: last_release
uses: cardinalby/git-get-release-action@v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
latest: true
prerelease: false
draft: false
- name: Get next version
id: get-version
run: |
version=${{ steps.last_release.outputs.tag_name }}
result=$(echo ${version} | awk -F. -v OFS=. '{$NF += 1 ; print}')
echo "version=$result" >> $GITHUB_OUTPUT
- name: Download all build artifacts
uses: actions/download-artifact@v4
with:
path: ./builds
merge-multiple: true
- name: Setup Service Account
uses: google-github-actions/auth@v1
with:
workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT_EMAIL }}
- name: Upload kernels to GCS
uses: "google-github-actions/upload-cloud-storage@v1"
with:
path: "./builds"
destination: ${{ vars.GCP_BUCKET_NAME }}/kernels
gzip: false
parent: false
- name: Create Git tag
run: |
git config user.name "github-actions"
git config user.email "github-actions@github.com"
git tag ${{ steps.get-version.outputs.version }}
git push origin ${{ steps.get-version.outputs.version }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare release assets
run: |
mkdir -p release-assets
for dir in ./builds/*/; do
name=$(basename "$dir")
# Legacy x86_64 (no arch subdir)
if [ -f "$dir/vmlinux.bin" ]; then
cp "$dir/vmlinux.bin" "release-assets/${name}.bin"
fi
# Per-arch binaries
for archdir in "$dir"/*/; do
[ -d "$archdir" ] || continue
arch=$(basename "$archdir")
if [ -f "$archdir/vmlinux.bin" ]; then
cp "$archdir/vmlinux.bin" "release-assets/${name}-${arch}.bin"
fi
done
done
- name: Upload Release Asset
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
name: Kernels ${{ steps.get-version.outputs.version }}
tag_name: ${{ steps.get-version.outputs.version }}
files: "./release-assets/*"