diff --git a/rust/.github/workflows/continuous-integration.yml b/rust/.github/workflows/continuous-integration.yml index bc081e5..b7c0aae 100644 --- a/rust/.github/workflows/continuous-integration.yml +++ b/rust/.github/workflows/continuous-integration.yml @@ -36,6 +36,18 @@ jobs: - name: Check linting. run: nix develop -c make check-${{ matrix.language }}-linting + scripts-permissions: + name: Scripts Permissions + runs-on: ${{ matrix.architecture }} + strategy: + matrix: + architecture: [ubuntu-24.04, ubuntu-24.04-arm] + steps: + - name: Checkout code. + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + - name: Check scripts permissions. + run: make check-scripts-permissions + compile: name: Compile runs-on: ${{ matrix.architecture }} diff --git a/rust/Makefile.jinja b/rust/Makefile.jinja index cb6ea45..731a489 100644 --- a/rust/Makefile.jinja +++ b/rust/Makefile.jinja @@ -50,6 +50,10 @@ check-rust-linting: check-github-actions-workflows-linting: actionlint -verbose -color +.PHONY: check-scripts-permissions +check-scripts-permissions: + ./ci/check-scripts-permissions.sh + .PHONY: compile compile: cargo build --verbose $(CARGO_LOCKED) diff --git a/rust/ci/check-scripts-permissions.sh b/rust/ci/check-scripts-permissions.sh new file mode 100755 index 0000000..67821de --- /dev/null +++ b/rust/ci/check-scripts-permissions.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env sh + +set -o errexit +set -o xtrace + +exit_code=0 +for script in ci/*.sh; do + if [ -f "$script" ] && [ ! -x "$script" ]; then + exit_code=1 + fi +done + +exit $exit_code