Repository: aya-rs/aya (language: rust)

Issue:
Do xtask codegen in CI
We should setup a CI job to run `xtask codgen` using the latest libbpf and kernel. Right now we run codegen manually on our dev environments and that's time consuming and error prone. 


Discussion / hints:

Fix patch:
diff --git a/.github/workflows/gen.yml b/.github/workflows/gen.yml
new file mode 100644
index 000000000..aac984176
--- /dev/null
+++ b/.github/workflows/gen.yml
@@ -0,0 +1,51 @@
+name: codegen
+
+on: workflow_dispatch
+
+jobs:
+  codegen:
+    runs-on: ubuntu-20.04
+
+    steps:
+      - uses: actions/checkout@v2
+
+      - uses: actions/checkout@v2
+        with:
+          repository: libbpf/libbpf
+          path: libbpf
+
+      - name: libbpf-version
+        working-directory: libbpf
+        run: echo "LIBBPF_SHA=$(git rev-parse HEAD)" >> $GITHUB_ENV
+
+      - uses: Swatinem/rust-cache@v1
+
+      - name: Run codegen
+        run: |
+          cargo xtask codegen --libbpf-dir ./libbpf
+
+      - name: Check for changes
+        run: |
+          git diff --quiet || echo "COMMIT_CHANGES=1" >> $GITHUB_ENV
+
+      - name: Commit Changes
+        id: commit
+        if: env.COMMIT_CHANGES == 1
+        uses: devops-infra/action-commit-push@master
+        with:
+          github_token: "${{ secrets.GITHUB_TOKEN }}"
+          commit_prefix: "[codegen] Update libbpf to ${{ env.LIBBPF_SHA }}"
+          commit_message: "Created using GitHub Actions"
+          target_branch: codegen
+
+
+      - name: Create pull request
+        if: steps.commit.outputs.files_changed != ''
+        uses: devops-infra/action-pull-request@master
+        with:
+          github_token: ${{ secrets.GITHUB_TOKEN }}
+          body: "**Automated pull request**<br><br>Update libbpf to ${{ env.LIBBPF_SHA }}"
+          title: Update libbpf to ${{ env.LIBBPF_SHA }}
+          source_branch: codegen
+          target_branch: main
+          get_diff: true
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 9b3d7e228..6482bd3cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
 Cargo.lock
 target/
 .vscode
+libbpf/
\ No newline at end of file


Test patch: