You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							77 lines
						
					
					
						
							2.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							77 lines
						
					
					
						
							2.9 KiB
						
					
					
				
								name: Doxygen
							 | 
						|
								# Builds and deploys storms doxygen documentation
							 | 
						|
								
							 | 
						|
								on:
							 | 
						|
								  schedule:
							 | 
						|
								      # run daily
							 | 
						|
								      - cron: '0 8 * * *'
							 | 
						|
								  # needed to trigger the workflow manually
							 | 
						|
								  workflow_dispatch:
							 | 
						|
								
							 | 
						|
								env:
							 | 
						|
								  BASE_IMG: "movesrwth/carl:ci-release"
							 | 
						|
								  STORM_GIT_URL: "${{ github.server_url }}/${{ github.repository }}.git"
							 | 
						|
								  STORM_BRANCH: "master"
							 | 
						|
								  # github runners currently have two cores
							 | 
						|
								  NR_JOBS: "2"
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								jobs:
							 | 
						|
								
							 | 
						|
								  deploy:
							 | 
						|
								    name: Create documentation
							 | 
						|
								    runs-on: ubuntu-latest
							 | 
						|
								    # Do not run on forks
							 | 
						|
								    if: github.repository_owner == 'moves-rwth'
							 | 
						|
								    steps:
							 | 
						|
								      - name: Init Docker
							 | 
						|
								        run: sudo docker run -d -it --name storm --privileged ${BASE_IMG}
							 | 
						|
								
							 | 
						|
								        # We should not do partial updates :/
							 | 
						|
								        # but we need to install some dependencies
							 | 
						|
								        # Surely we can find a better way to do this at some point
							 | 
						|
								      - name: Update base system
							 | 
						|
								        run: |
							 | 
						|
								          sudo docker exec storm apt-get update
							 | 
						|
								          sudo docker exec storm apt-get upgrade -qqy          
							 | 
						|
								      - name: install dependencies
							 | 
						|
								        run: sudo docker exec storm apt-get install -qq -y doxygen graphviz
							 | 
						|
								      - name: Git clone storm
							 | 
						|
								        run: sudo docker exec storm git clone --depth 1 --branch $STORM_BRANCH $STORM_GIT_URL /opt/storm
							 | 
						|
								      - name: Run cmake
							 | 
						|
								        run: sudo docker exec storm bash -c "mkdir /opt/storm/build; cd /opt/storm/build; cmake .."
							 | 
						|
								      - name: Build doxygen
							 | 
						|
								        run: sudo docker exec storm bash -c "cd /opt/storm/build; make doc -j ${NR_JOBS}"
							 | 
						|
								      - name: Copy doxygen
							 | 
						|
								        run: sudo docker cp storm:/opt/storm/build/doc/html .
							 | 
						|
								      - name: Deploy doxygen
							 | 
						|
								        uses: peaceiris/actions-gh-pages@v3
							 | 
						|
								        with:
							 | 
						|
								          deploy_key: ${{ secrets.DOC_DEPLOY_KEY }}
							 | 
						|
								          publish_dir: ./html
							 | 
						|
								          external_repository: moves-rwth/storm-doc
							 | 
						|
								          publish_branch: master
							 | 
						|
								          force_orphan: true
							 | 
						|
								
							 | 
						|
								  notify:
							 | 
						|
								    name: Email notification
							 | 
						|
								    runs-on: ubuntu-latest
							 | 
						|
								    needs: [deploy]
							 | 
						|
								    # Only run in main repo and even if previous step failed
							 | 
						|
								    if: github.repository_owner == 'moves-rwth' && always()
							 | 
						|
								    steps:
							 | 
						|
								      - uses: technote-space/workflow-conclusion-action@v2
							 | 
						|
								      - uses: dawidd6/action-send-mail@v2
							 | 
						|
								        with:
							 | 
						|
								          server_address: ${{ secrets.STORM_CI_MAIL_SERVER }}
							 | 
						|
								          server_port: 587
							 | 
						|
								          username: ${{ secrets.STORM_CI_MAIL_USERNAME }}
							 | 
						|
								          password: ${{ secrets.STORM_CI_MAIL_PASSWORD }}
							 | 
						|
								          subject: "[You broke it] Doxygen generation failed for ${{ github.repository }}"
							 | 
						|
								          body:
							 | 
						|
								            "CI job of ${{ github.repository }} has failed for commit ${{ github.sha }}.\n\
							 | 
						|
								            The error type is: ${{ env.WORKFLOW_CONCLUSION }}.\n\n\
							 | 
						|
								            For more information, see https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}"
							 | 
						|
								          to: ${{ secrets.STORM_CI_MAIL_RECIPIENTS }}
							 | 
						|
								          from: Github Actions <you-broke-it@stormchecker.org>
							 | 
						|
								        if: env.WORKFLOW_CONCLUSION != 'success' # notify only if failure
							 |