# This is a basic workflow to help you get started with Actions name: CI # Controls when the action will run. on: # Triggers the workflow on push or pull request events but only for the master branch push: branches: [ '*' ] pull_request: branches: [ master ] release: types: [ created ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: build-image: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Build image run: | docker run --privileged --rm -v /dev:/dev -v $(pwd):/builder/repo -e TRAVIS_TAG="${{ github.event.release.tag_name }}" sfalexrog/img-tool:qemu-update - name: Compress image run: | sudo chmod -R 777 images && zip -9 $(echo images/clover_*).zip images/clover_* && ls -l images - name: Upload image uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/v') with: files: images/clover_*.zip prerelease: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} documentation: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v2 - name: Use Node.js uses: actions/setup-node@v1 with: { node-version: '10' } - name: Setup tools run: | sudo sh -c "echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections" sudo apt update && sudo apt install -y calibre msttcorefonts npm install gitbook-cli -g gitbook fetch 3.2.3 && npm i npm@3.10.10 --prefix=~/.gitbook/versions/3.2.3/ # fixing https://travis-ci.org/github/CopterExpress/clover/jobs/766541125#L932 npm install markdownlint-cli -g npm install svgexport -g gitbook -V markdownlint -V - name: Run markdownlint run: markdownlint docs - name: Check Assets run: | ./check_assets_size.py ./check_unused_assets.py - name: Build GitBook run: | gitbook install gitbook build - name: Generate PDF if: ${{ github.repository == 'CopterExpress/clover' && github.event_name == 'push' && github.ref == 'refs/heads/master' }} run: | for i in 1 2 3 4; do gitbook pdf ./ _book/clover.pdf && break || sleep 1; done sudo apt-get -q install ghostscript gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages -dCompressFonts=true -r150 -sOutputFile=_book/clover_ru_compressed.pdf _book/clover_ru.pdf gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages -dCompressFonts=true -r150 -sOutputFile=_book/clover_en_compressed.pdf _book/clover_en.pdf rm _book/clover_ru.pdf && mv _book/clover_ru_compressed.pdf _book/clover_ru.pdf rm _book/clover_en.pdf && mv _book/clover_en_compressed.pdf _book/clover_en.pdf ls -lah _book/clover*.pdf - name: Deploy uses: JamesIves/github-pages-deploy-action@4.1.3 if: ${{ github.repository == 'CopterExpress/clover' && github.event_name == 'push' && github.ref == 'refs/heads/master' }} with: branch: actions folder: _book repository-name: CopterExpress/clover.coex.tech token: ${{ secrets.DOCS_DEPLOY_TOKEN }} clean: true single-commit: true # to avoid multiple copies of large pdf files # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 # Runs a set of commands using the runners shell - name: Native Melodic build env: NATIVE_DOCKER: ros:melodic-ros-base run: | docker run --rm -v $(pwd):/root/catkin_ws/src/clover ${NATIVE_DOCKER} /root/catkin_ws/src/clover/builder/standalone-install.sh editorconfig: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: .editorconfig Linter run: | wget --no-verbose https://github.com/okalachev/editorconfig-checker/releases/download/1.2.1-disable-spaces-amount/ec-linux-amd64 chmod +x ec-linux-amd64 ./ec-linux-amd64 -spaces-after-tabs -e "roslib.js|ros3d.js|eventemitter2.js|draw.cpp|BinUtils.swift|\.idea|apps/android/app|blockly/|clover_blocks/programs/|highlight/|python.js|Assets.xcassets|test_parser_pass.txt|test_node_failure.txt|aruco_pose/vendor|\.stl|\.dxf|\.dae"