# Copyright (c) 2022 Skyward Experimental Rocketry # Authors: Alberto Nidasio # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. variables: GIT_SUBMODULE_STRATEGY: recursive QT_VERSION: 5.15.2 stages: - lint - build - release default: image: registry.skywarder.eu/avn/swd/docker/miosix:latest # Stage lint cppcheck: stage: lint script: - cppcheck --version - ./scripts/linter.py --cppcheck src format: stage: lint script: - clang-tidy --version - clang-format --version - ./scripts/linter.py --format src find: stage: lint script: - /usr/bin/python3 --version - ./scripts/linter.py --find src # Stage build build_linux: stage: build image: registry.skywarder.eu/avn/swd/docker/qt/linux before_script: - QMAKE=/opt/qt/$QT_VERSION/gcc_64/bin/qmake script: - cmake -Bbuild -DCMAKE_CXX_COMPILER_LAUNCHER=ccache . - cmake --build build -j 16 - cd build - linuxdeploy --plugin qt -e groundstation -d ../linuxdeploy/groundstation.desktop -i ../linuxdeploy/SkywardLogo.png --appdir AppDir - appimagetool AppDir - mv Ground_Station-x86_64.AppImage ../Ground_Station-$CI_COMMIT_SHORT_SHA-x86_64.AppImage artifacts: name: Linux AppImage paths: - Ground_Station-$CI_COMMIT_SHORT_SHA-x86_64.AppImage expire_in: 7 days build_windows: stage: build image: registry.skywarder.eu/avn/swd/docker/qt/windows before_script: - export PATH=/home/gitlab-runner/mxe/usr/bin:$PATH script: - x86_64-w64-mingw32.static-cmake -Bbuild -DCMAKE_CXX_COMPILER_LAUNCHER=ccache . - x86_64-w64-mingw32.static-cmake --build build -j 16 - mv build/groundstation.exe Ground_Station-$CI_COMMIT_SHORT_SHA.exe artifacts: name: Windows executable paths: - Ground_Station-$CI_COMMIT_SHORT_SHA.exe expire_in: 7 days post_on_slack: stage: release image: curlimages/curl script: - | curl -XPOST -H "Content-type: application/json" -H "api-key: $SKYWARD_API_KEY" -d "{ \"project_id\": $CI_PROJECT_ID, \"pipeline_id\": $CI_PIPELINE_ID, \"message\": \"Bruh, SkywardHub just dropped a new build!\", \"commit_message\": \"${CI_COMMIT_MESSAGE//[$'\n']}\", \"channel_id\": \"$SLACK_CHANNEL_ID\" }" https://api.skywarder.eu/swd/post_job_artifacts rules: - if: $CI_COMMIT_BRANCH == "main"