Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add preliminary CI scripts #36

Merged
merged 1 commit into from
Jul 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Expand Up @@ -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
Expand Up @@ -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
Expand Up @@ -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
Expand Up @@ -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
Expand Up @@ -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
Expand Up @@ -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);