name: Test and deploy on: push: branches: - 'master' pull_request: branches: - '*' # paths: # - "*" # - "!README.md" <-- don't rebuild on doc change permissions: contents: read jobs: format: name: Formatting check runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 with: submodules: 'recursive' - run: | sudo apt update sudo apt install -y libxml2-dev libxml2-utils - name: Check formatting run: | ./scripts/test.sh format python-tests: name: Python ${{ matrix.python-version }} tests runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] steps: - uses: actions/checkout@v2 with: submodules: 'recursive' - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | pip install future lxml - name : Test Python generator run: | ./scripts/test.sh py build-cmake-c-example: name: Build cmake C example runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 with: submodules: 'recursive' - name: Install dependencies run: | sudo apt update sudo apt install -y python3 python3-pip - name: Install MAVLink headers run: | cmake -Bbuild -H. -DCMAKE_INSTALL_PREFIX=install cmake --build build --target install - name: Build example run: | cd examples/c cmake -Bbuild -H. -DCMAKE_PREFIX_PATH=$(pwd)/../../install cmake --build build node-tests: name: Node ${{ matrix.node-version }} test runs-on: ubuntu-20.04 strategy: fail-fast: false matrix: node-version: ['14','15','16','17','18'] steps: - uses: actions/checkout@v2 with: submodules: 'recursive' - name: Set up Python 3.8 uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install dependencies run: | pip install future lxml - uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name : Test mavlink run: | ./scripts/test.sh node deploy: name: Generate and push C headers needs: [format, python-tests, node-tests] runs-on: ubuntu-20.04 if: github.ref == 'refs/heads/master' env: GH_TOKEN: ${{ secrets.GH_TOKEN }} steps: - uses: actions/checkout@v2 with: submodules: 'recursive' - name: Set up Python 3.8 uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install dependencies run: | pip install future lxml - name: Run deploy script run: | ./scripts/update_generated_repos.sh