Conditionally run tasks

This commit is contained in:
Gabriel Simmer 2023-04-25 16:13:49 +01:00
parent 36ef676d2a
commit cfd50cddce
Signed by: arch
GPG key ID: C81B106D46C5B875
3 changed files with 50 additions and 7 deletions

31
.builds/changed-paths.sh Normal file
View file

@ -0,0 +1,31 @@
#!/bin/bash
# Get the list of changed paths in the latest commit
changed_paths=$(git diff-tree --no-commit-id --name-only -r HEAD)
# Variables to track changes in specified paths
source_changed=false
website_changed=false
# Check if any of the specified paths have changed
for path in $changed_paths; do
if [[ $path == Cargo.* || $path == src/* || $path == .build/* ]]; then
source_changed=true
elif [[ $path == website/* ]]; then
website_changed=true
fi
done
# Determine the result based on the changes detected
if $source_changed && $website_changed; then
result="all"
elif $source_changed; then
result="source"
elif $website_changed; then
result="website"
else
result="none"
fi
echo "Result: $result"
exit 0

View file

@ -11,10 +11,16 @@ environment:
tasks:
- check: |
cd osc-triggers
echo "Running nix flake check..."
nix flake check
export CHANGED_FILES=$(./.builds/changed-paths.sh)
if [[ $CHANGED_FILES == "source" || $CHANGED_FILES == "all" ]]; then
echo "Running nix flake check..."
nix flake check
fi
- mirror-to-github: |
cd osc-triggers
git remote add github git@github.com:$GITHUB_REPO.git
ssh-keyscan github.com >> ~/.ssh/known_hosts
git push --mirror github
export CHANGED_FILES=$(./.builds/changed-paths.sh)
if [[ $CHANGED_FILES == "source" || $CHANGED_FILES == "all" ]]; then
git remote add github git@github.com:$GITHUB_REPO.git
ssh-keyscan github.com >> ~/.ssh/known_hosts
git push --mirror github
fi

View file

@ -9,6 +9,12 @@ sources:
tasks:
- package: |
cd osc-triggers/website
tar -cvz . > ../../site.tar.gz
export CHANGED_FILES=$(../.builds/changed-paths.sh)
if [[ $CHANGED_FILES == "website" || $CHANGED_FILES == "all" ]]; then
tar -cvz . > ../../site.tar.gz
fi
- upload: |
hut pages publish -d $site site.tar.gz
export CHANGED_FILES=$(./osc-triggers/.builds/changed-paths.sh)
if [[ $CHANGED_FILES == "website" || $CHANGED_FILES == "all" ]]; then
hut pages publish -d $site site.tar.gz
fi