Skip to content

Commit

Permalink
Add falke and use nix package to have stable astyle version
Browse files Browse the repository at this point in the history
Signed-off-by: Duc Tri Nguyen <[email protected]>
  • Loading branch information
cothan committed Mar 27, 2024
1 parent f29ab0b commit 0592c97
Show file tree
Hide file tree
Showing 3 changed files with 147 additions and 16 deletions.
54 changes: 38 additions & 16 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,41 @@ jobs:
build_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: install dependencies
run: sudo apt-get update && sudo apt install -y astyle jq git

- name: Astyle version
run: astyle --version

- name: Astyle test
run: |
err=$(astyle $(git ls-files "*.c" "*.h") --options=.astylerc --dry-run --formatted)
if [[ ${#err} != 0 ]]; then
echo "$err" | awk '{split($0,a);print a[2]}' | while IFS= read -r file; do
echo "::error file={"$file"},title={checking}::Formatted $file"
done
exit 1
fi
- name: install jq
shell: bash
run: |
if ! (command -v jq) &> /dev/null
then
sudo apt install -y --no-install-recommends jq
fi
- uses: actions/checkout@v4
- id: nixpkgs
shell: bash
run: |
if [ -f flake.lock ]; then
nixpkgs="flake:$(cat flake.lock | jq -r '.nodes.nixpkgs.locked // empty | .type + ":" + .owner + "/" + .repo + "/" + .rev')"
else
nixpkgs=channel:nixos-unstable
fi
echo "nixpkgs=$nixpkgs" >> "$GITHUB_OUTPUT"
- uses: cachix/install-nix-action@v25
with:
nix_path: nixpkgs=${{ steps.nixpkgs.outputs.nixpkgs }}
- name: Prepare nix dev shell
shell: nix develop .#ci -c bash -e {0}
run: |
astyle --version
- name: Astyle
shell: nix develop .#ci -c bash -e {0}
run: |
err=$(astyle $(git ls-files "*.c" "*.h") --options=.astylerc --dry-run --formatted)
if [[ ${#err} != 0 ]]; then
echo "$err" | awk '{split($0,a);print a[2]}' | while IFS= read -r file; do
echo "::error file={"$file"},title={checking}::Formatted $file"
done
exit 1
fi
- name: Build targets
shell: nix develop .#ci -c bash -e {0}
run: |
make
48 changes: 48 additions & 0 deletions flake.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

61 changes: 61 additions & 0 deletions flake.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# SPDX-License-Identifier: Apache-2.0

{
description = "mlkem-c-embedded";

inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";

flake-parts = {
url = "github:hercules-ci/flake-parts";
inputs.nixpkgs-lib.follows = "nixpkgs";
};
};

outputs = inputs@{ flake-parts, nixpkgs, ... }:
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [ ];
systems = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" ];
perSystem = { pkgs, system, inputs', ... }:
let
core = with pkgs; [
# formatter & linters
astyle # 3.4.10

# build dependencies
gcc-arm-embedded-13 # arm-gnu-toolchain-13.2.rel1
openocd # 0.12.0
python311Packages.pyserial # 3.5
];
in
{
devShells.default = with pkgs; mkShellNoCC {
packages = core ++ [
direnv
nix-direnv

# formatter & linters
nixpkgs-fmt
shfmt
codespell
];

shellHook = ''
export PATH=$PWD/dev-support/bin:$PATH
'';
};

devShells.ci = with pkgs; mkShellNoCC {
packages = core;
};

};
flake = {
# The usual flake attributes can be defined here, including system-
# agnostic ones like nixosModule and system-enumerating ones, although
# those are more easily expressed in perSystem.

};
};
}

0 comments on commit 0592c97

Please sign in to comment.