diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..a37d9be7 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,40 @@ +name: CI + +on: + push: + pull_request: + workflow_dispatch: + +jobs: + CI: + runs-on: ubuntu-latest + if: (github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository) + steps: + - uses: actions/checkout@v4 + + - name: Set up dependencies + run: | + sudo add-apt-repository ppa:flatpak/stable + sudo apt-get update + sudo apt-get install -y flatpak + flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo + flatpak install flathub -y org.flatpak.Builder + + - name: Validate manifests + run: | + set -e + for i in $(find . -type f -name "*.json"); do flatpak run org.flatpak.Builder --show-manifest --show-manifest "$i"; done + rm -rf .flatpak-builder + + find . -maxdepth 1 -mindepth 1 -type d ! -path './.github' ! -path './.git' | while read dir; do + if [ "$(find "$dir" -maxdepth 1 -type f -name '*.json' | wc -l)" -eq 0 ]; then + echo "Error: $dir has no JSON manifest" + exit 1 + fi + done + + files="$(find . -type f \( -name '*.yml' -o -name '*.yaml' \) ! -path './.github/*' ! -path './.git')" + if [ -n "$files" ]; then + echo "Error: YML/YAML file found: $files" + exit 1 + fi diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..e120fab2 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.flatpak-builder/