Simple script and config (type-safe) for building custom Linux kernels for Firecracker MicroVMs

feat: add CI workflow for Docker image publishing to GitHub Container Registry

+60
+60
.github/workflows/docker-publish.yml
···
··· 1 + name: ci 2 + on: 3 + push: 4 + tags: 5 + - "*" 6 + workflow_dispatch: 7 + inputs: 8 + tag: 9 + description: "The existing tag to publish" 10 + type: "string" 11 + required: true 12 + 13 + env: 14 + REGISTRY: ghcr.io 15 + 16 + jobs: 17 + publish: 18 + runs-on: ubuntu-latest 19 + permissions: 20 + contents: write 21 + packages: write 22 + steps: 23 + - uses: actions/checkout@v4 24 + with: 25 + submodules: true 26 + - name: Log in to Docker 27 + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 28 + with: 29 + username: ${{ secrets.DOCKERHUB_USERNAME }} 30 + password: ${{ secrets.DOCKERHUB_PASSWORD }} 31 + 32 + - name: Write Github Token to file 33 + run: echo $GITHUB_TOKEN > .github_token 34 + env: 35 + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 36 + 37 + - name: Build and Publish image to Docker Hub 38 + uses: fluentci-io/setup-fluentci@v5 39 + with: 40 + wasm: true 41 + plugin: buildx 42 + args: | 43 + build_cloud --platform linux/amd64,linux/arm64 -t tsiry/vmlinux-builder:latest . "--build-arg GITHUB_TOKEN=\"${GITHUB_ACCESS_TOKEN}\" --build-arg TAG=\"${TAG}\"" --push 44 + env: 45 + GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} 46 + BUILDX_BUILDER: tsiry/rockbox-builder 47 + TAG: ${{ inputs.tag || github.ref_name }} 48 + 49 + - name: Log in to Github Container Registry 50 + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 51 + with: 52 + registry: ${{ env.REGISTRY }} 53 + username: ${{ github.actor }} 54 + password: ${{ secrets.GITHUB_TOKEN }} 55 + 56 + - name: Publish to Github Container Registry 57 + run: | 58 + docker pull tsiry/vmlinux-builder:latest 59 + docker tag tsiry/vmlinux-builder:latest ghcr.io/tsirysndr/vmlinux-builder:latest 60 + docker push ghcr.io/tsirysndr/vmlimux-builder:latest