Conditionally run tasks
This commit is contained in:
parent
36ef676d2a
commit
cfd50cddce
31
.builds/changed-paths.sh
Normal file
31
.builds/changed-paths.sh
Normal 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
|
|
@ -11,10 +11,16 @@ environment:
|
||||||
tasks:
|
tasks:
|
||||||
- check: |
|
- check: |
|
||||||
cd osc-triggers
|
cd osc-triggers
|
||||||
|
export CHANGED_FILES=$(./.builds/changed-paths.sh)
|
||||||
|
if [[ $CHANGED_FILES == "source" || $CHANGED_FILES == "all" ]]; then
|
||||||
echo "Running nix flake check..."
|
echo "Running nix flake check..."
|
||||||
nix flake check
|
nix flake check
|
||||||
|
fi
|
||||||
- mirror-to-github: |
|
- mirror-to-github: |
|
||||||
cd osc-triggers
|
cd osc-triggers
|
||||||
|
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
|
git remote add github git@github.com:$GITHUB_REPO.git
|
||||||
ssh-keyscan github.com >> ~/.ssh/known_hosts
|
ssh-keyscan github.com >> ~/.ssh/known_hosts
|
||||||
git push --mirror github
|
git push --mirror github
|
||||||
|
fi
|
||||||
|
|
|
@ -9,6 +9,12 @@ sources:
|
||||||
tasks:
|
tasks:
|
||||||
- package: |
|
- package: |
|
||||||
cd osc-triggers/website
|
cd osc-triggers/website
|
||||||
|
export CHANGED_FILES=$(../.builds/changed-paths.sh)
|
||||||
|
if [[ $CHANGED_FILES == "website" || $CHANGED_FILES == "all" ]]; then
|
||||||
tar -cvz . > ../../site.tar.gz
|
tar -cvz . > ../../site.tar.gz
|
||||||
|
fi
|
||||||
- upload: |
|
- upload: |
|
||||||
|
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
|
hut pages publish -d $site site.tar.gz
|
||||||
|
fi
|
||||||
|
|
Loading…
Reference in a new issue