Skip to content

Commit

Permalink
Add preliminary CI scripts
Browse files Browse the repository at this point in the history
Indent all C source files with clang-format-12.
At present, "make" is the only way to validate the build.
  • Loading branch information
jserv committed Jul 18, 2024
1 parent 218f9e5 commit 48b45a3
Showing 9 changed files with 92 additions and 6 deletions.
14 changes: 14 additions & 0 deletions .ci/check-format.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/usr/bin/env bash

set -e -u -o pipefail

SOURCES=$(find $(git rev-parse --show-toplevel) | egrep "\.(c|cxx|cpp|h|hpp)\$")

set -x

for file in ${SOURCES};
do
clang-format-12 ${file} > expected-format
diff -u -p --label="${file}" --label="expected coding style" ${file} expected-format
done
exit $(clang-format-12 --output-replacements-xml ${SOURCES} | egrep -c "</replacement>")
19 changes: 19 additions & 0 deletions .ci/check-newline.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/usr/bin/env bash

set -e -u -o pipefail

ret=0
show=0
# Reference: https://medium.com/@alexey.inkin/how-to-force-newline-at-end-of-files-and-why-you-should-do-it-fdf76d1d090e
while IFS= read -rd '' f; do
if file --mime-encoding "$f" | grep -qv binary; then
tail -c1 < "$f" | read -r _ || show=1
if [ $show -eq 1 ]; then
echo "Warning: No newline at end of file $f"
ret=1
show=0
fi
fi
done < <(git ls-files -z src tests/arch-test-target)

exit $ret
53 changes: 53 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: CI

on: [push, pull_request]

jobs:
detect-code-related-file-changes:
runs-on: ubuntu-22.04
outputs:
has_code_related_changes: ${{ steps.set_has_code_related_changes.outputs.has_code_related_changes }}
steps:
- name: Check out the repo
uses: actions/checkout@v4
- name: Test changed files
id: changed-files
uses: tj-actions/changed-files@v44
with:
files: |
.ci/**
mk/**
src/**
target/**
.clang-format
Makefile
- name: Set has_code_related_changes
id: set_has_code_related_changes
run: |
if [[ ${{ steps.changed-files.outputs.any_changed }} == true ]]; then
echo "has_code_related_changes=true" >> $GITHUB_OUTPUT
else
echo "has_code_related_changes=false" >> $GITHUB_OUTPUT
fi
host-x64:
needs: [detect-code-related-file-changes]
if: needs.detect-code-related-file-changes.outputs.has_code_related_changes == 'true'
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: default build
run: make

coding-style:
needs: [detect-code-related-file-changes]
if: needs.detect-code-related-file-changes.outputs.has_code_related_changes == 'true'
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: coding convention
run: |
sudo apt-get install -q -y clang-format-12
.ci/check-newline.sh
.ci/check-format.sh
shell: bash
2 changes: 1 addition & 1 deletion src/diskimg.c
Original file line number Diff line number Diff line change
@@ -36,4 +36,4 @@ int diskimg_init(struct diskimg *diskimg, const char *file_path)
void diskimg_exit(struct diskimg *diskimg)
{
close(diskimg->fd);
}
}
2 changes: 1 addition & 1 deletion src/virtio-blk.c
Original file line number Diff line number Diff line change
@@ -194,4 +194,4 @@ void virtio_blk_exit(struct virtio_blk_dev *dev)
virtio_pci_exit(&dev->virtio_pci_dev);
close(dev->irqfd);
close(dev->ioeventfd);
}
}
2 changes: 1 addition & 1 deletion src/virtio-blk.h
Original file line number Diff line number Diff line change
@@ -41,4 +41,4 @@ void virtio_blk_init_pci(struct virtio_blk_dev *dev,
struct diskimg *diskimg,
struct pci *pci,
struct bus *io_bus,
struct bus *mmio_bus);
struct bus *mmio_bus);
2 changes: 1 addition & 1 deletion src/virtio-pci.h
Original file line number Diff line number Diff line change
@@ -54,4 +54,4 @@ void virtio_pci_init(struct virtio_pci_dev *dev,
struct pci *pci,
struct bus *io_bus,
struct bus *mmio_bus);
void virtio_pci_exit();
void virtio_pci_exit();
2 changes: 1 addition & 1 deletion src/virtq.c
Original file line number Diff line number Diff line change
@@ -63,4 +63,4 @@ void virtq_handle_avail(struct virtq *vq)
virtq_complete_request(vq);
if (vq->guest_event->flags == VRING_PACKED_EVENT_FLAG_ENABLE)
virtq_notify_used(vq);
}
}
2 changes: 1 addition & 1 deletion src/virtq.h
Original file line number Diff line number Diff line change
@@ -42,4 +42,4 @@ void virtq_complete_request(struct virtq *vq);
void virtq_notify_used(struct virtq *vq);
void virtq_deassert_irq(struct virtq *vq);
void virtq_handle_avail(struct virtq *vq);
void virtq_init(struct virtq *vq, void *dev, struct virtq_ops *ops);
void virtq_init(struct virtq *vq, void *dev, struct virtq_ops *ops);

0 comments on commit 48b45a3

Please sign in to comment.