Added as a comment to the current pull request
This commit is contained in:
parent
6bde92bd91
commit
ea3361a191
4 changed files with 58 additions and 23 deletions
|
@ -1,23 +0,0 @@
|
|||
on:
|
||||
push:
|
||||
jobs:
|
||||
check:
|
||||
runs-on: nixos
|
||||
steps:
|
||||
- uses: "https://code.forgejo.org/actions/checkout@v4"
|
||||
- run: nix --version
|
||||
- run: nix flake check --keep-going --verbose
|
||||
build:
|
||||
runs-on: nixos
|
||||
strategy:
|
||||
matrix:
|
||||
target:
|
||||
- audiomenu
|
||||
- docs
|
||||
- jpassmenu
|
||||
- nixosConfigurations.vm.config.system.build.toplevel
|
||||
- nvim
|
||||
steps:
|
||||
- uses: "https://code.forgejo.org/actions/checkout@v4"
|
||||
- run: nix --version
|
||||
- run: nix build --print-build-logs '.#${{ matrix.target }}'
|
10
.forgejo/workflows/size-report.yml
Normal file
10
.forgejo/workflows/size-report.yml
Normal file
|
@ -0,0 +1,10 @@
|
|||
on:
|
||||
pull_request:
|
||||
jobs:
|
||||
report-size:
|
||||
runs-on: nixos
|
||||
steps:
|
||||
- uses: "https://git.salame.cl/actions/checkout@v4"
|
||||
- run: nix --version
|
||||
- name: Report Size
|
||||
run: ci-scripts/report-size.sh
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,4 +1,5 @@
|
|||
result
|
||||
result-*
|
||||
.direnv/
|
||||
.pre-commit-config.yaml
|
||||
# ignore vm images
|
||||
|
|
47
ci-scripts/report-size.sh
Executable file
47
ci-scripts/report-size.sh
Executable file
|
@ -0,0 +1,47 @@
|
|||
#!/bin/sh
|
||||
|
||||
package_size_table() {
|
||||
packages=$(nix flake show --json 2>/dev/null | jq --raw-output '.packages."x86_64-linux" | ".#" + keys[]')
|
||||
# we want to split the words as each of them is a different installable
|
||||
# shellcheck disable=SC2086
|
||||
nix build $packages
|
||||
# shellcheck disable=SC2086
|
||||
table=$(nix path-info --size --closure-size --human-readable \
|
||||
$packages |
|
||||
sed 's/^\(\S\+\)\(\s\+\)\(\S\+\)\(\s\+\)\(\S\+\)$/| \1\2| \3 | \4\5 |/')
|
||||
|
||||
cat <<-EOF
|
||||
| Nix Store Path | NAR Size | Closure Size |
|
||||
|----------------|---------:|-------------:|
|
||||
$table
|
||||
EOF
|
||||
}
|
||||
|
||||
if [ "$CI" = "true" ]; then
|
||||
pr_number=$(curl -X 'GET' \
|
||||
"$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/pulls?state=open&sort=recentupdate" \
|
||||
-H 'accept: application/json' |
|
||||
jq --arg head_ref "$GITHUB_HEAD_REF" '.[] | select(.head.ref == $head_ref) | .number')
|
||||
echo "Retrieved index: $pr_number"
|
||||
echo "Expected PR URL: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/pulls/$pr_number"
|
||||
echo 'Generating comment body'
|
||||
comment=$(
|
||||
cat <<-EOF
|
||||
### NixOS Configurations sizes
|
||||
|
||||
TODO
|
||||
|
||||
### Package sizes
|
||||
|
||||
$(package_size_table)
|
||||
EOF
|
||||
)
|
||||
echo 'Posting comment:'
|
||||
echo "$comment"
|
||||
curl -o - -v -X 'POST' \
|
||||
"$GITHUB_API_URL/repos/$GITHUB_REPOSITORY/issues/$pr_number/comments?token=$GITHUB_TOKEN" \
|
||||
-H 'accept: application/json' \
|
||||
-d "$(echo '{}' | jq --arg comment "$comment" '.body=$comment')"
|
||||
else
|
||||
package_size_table
|
||||
fi
|
Loading…
Reference in a new issue