Update main.yml #484
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [ dev ] | |
pull_request: | |
branches: [ dev ] | |
release: | |
types: [published] | |
jobs: | |
build: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
path: 'knowrob/src' | |
- name: Build KnowRob workspace | |
shell: bash | |
run: | | |
sudo add-apt-repository ppa:swi-prolog/stable | |
sudo apt-get update -y -qq | |
sudo apt-get install swi-prolog libspdlog-dev \ | |
libboost-python-dev libboost-serialization-dev libboost-program-options-dev \ | |
libraptor2-dev librdf0-dev \ | |
libfmt-dev libeigen3-dev \ | |
doxygen graphviz | |
cd knowrob | |
mkdir build | |
cd build | |
cmake ../src/ | |
make | |
- name: Create debian package | |
if: ${{github.event_name == 'push' || github.event_name == 'release'}} | |
shell: bash | |
run: | | |
cd knowrob/build | |
cpack | |
- name: Run unit tests | |
if: github.event_name == 'push' || github.event_name == 'pull_request' | |
shell: bash | |
run: | | |
sudo systemctl start mongod | |
cd knowrob/build | |
./all_gtests --gtest_filter=* --gtest_output="xml:$GITHUB_WORKSPACE/gtest-knowrob.xml" --gtest_color=no | |
- name: Report test results | |
uses: EnricoMi/publish-unit-test-result-action@v2 | |
if: ${{github.event_name == 'push' || github.event_name == 'pull_request'}} | |
with: | |
junit_files: "gtest-knowrob.xml" | |
action_fail: true | |
action_fail_on_inconclusive: true | |
##### | |
- name: Run doxygen | |
if: github.event_name == 'push' || github.event_name == 'release' | |
shell: bash | |
run: | | |
cd knowrob/build | |
make doc | |
- name: Move checkout | |
run: | | |
mv $GITHUB_WORKSPACE/knowrob/src/.git $GITHUB_WORKSPACE/ | |
mv $GITHUB_WORKSPACE/knowrob/src/* $GITHUB_WORKSPACE/ | |
- name: Extract version tag | |
if: github.event_name == 'release' | |
shell: bash | |
# Extract major.minor version from tag | |
run: echo "KNOWROB_DOCU_VERSION=$(echo ${GITHUB_REF#refs/tags/} | cut -d'.' -f1,2)" >> $GITHUB_ENV | |
- name: Extract branch name | |
if: github.event_name == 'push' | |
shell: bash | |
# Use branch name as version | |
run: echo "KNOWROB_DOCU_VERSION=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV | |
- name: Deploy doc to gh-pages | |
if: github.event_name == 'push' || github.event_name == 'release' | |
uses: JamesIves/github-pages-deploy-action@3.5.7 | |
with: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# The branch the action should deploy to. | |
BRANCH: gh-pages | |
# The folder the action should deploy. | |
FOLDER: doc/html | |
# The folder in the target branch | |
TARGET_FOLDER: ${{ env.KNOWROB_DOCU_VERSION }} | |
CLEAN: true | |
SINGLE_COMMIT: true | |
##### | |
- name: Release debian package | |
if: github.event_name == 'release' | |
shell: bash | |
env: | |
GITHUB_TOKEN: ${{ github.TOKEN }} | |
run: | | |
cd knowrob/src | |
gh release upload ${{github.event.release.tag_name}} ../../build_isolated/knowrob/knowrob-*.deb | |
- name: Upload debian package | |
if: github.event_name == 'push' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: debian package | |
path: ./knowrob/build/knowrob-*.deb | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test results | |
path: ./gtest-knowrob.xml |