-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix nasa#1199, Add workflow to build documentation
- Loading branch information
Showing
1 changed file
with
157 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,157 @@ | ||
name: "Build cFE Documentation" | ||
|
||
on: | ||
push: | ||
pull_request: | ||
|
||
env: | ||
SIMULATION: native | ||
BUILDTYPE: debug | ||
|
||
jobs: | ||
|
||
#Check for duplicate actions. Skips push actions if there is a matching or duplicate pull-request action. | ||
check-for-duplicates: | ||
runs-on: ubuntu-latest | ||
# Map a step output to a job output | ||
outputs: | ||
should_skip: ${{ steps.skip_check.outputs.should_skip }} | ||
steps: | ||
- id: skip_check | ||
uses: fkirc/skip-duplicate-actions@master | ||
with: | ||
concurrent_skipping: 'same_content' | ||
skip_after_successful_duplicate: 'true' | ||
do_not_skip: '["pull_request", "workflow_dispatch", "schedule"]' | ||
|
||
build-docs: | ||
#Continue if check-for-duplicates found no duplicates. Always runs for pull-requests. | ||
needs: check-for-duplicates | ||
if: ${{ needs.check-for-duplicates.outputs.should_skip != 'true' }} | ||
runs-on: ubuntu-18.04 | ||
timeout-minutes: 15 | ||
|
||
steps: | ||
- name: Install Dependencies | ||
run: sudo apt-get install doxygen graphviz -y | ||
|
||
# Check out the cfs bundle | ||
- name: Checkout bundle | ||
uses: actions/checkout@v2 | ||
with: | ||
repository: nasa/cFS | ||
submodules: true | ||
|
||
- name: Checkout submodule | ||
uses: actions/checkout@v2 | ||
with: | ||
path: cfe | ||
|
||
- name: Check versions | ||
run: git submodule | ||
|
||
# Setup the build system | ||
- name: Set up for build | ||
run: | | ||
cp ./cfe/cmake/Makefile.sample Makefile | ||
cp -r ./cfe/cmake/sample_defs sample_defs | ||
make prep | ||
- name: Build Docs | ||
run: | | ||
make doc > make_doc_stdout.txt 2> make_doc_stderr.txt | ||
# Upload documentation logs as artifacts | ||
- name: Archive Documentation Build Logs | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: cFS Docs Artifacts | ||
path: | | ||
make_doc_stdout.txt | ||
make_doc_stderr.txt | ||
- name: Error Check | ||
run: | | ||
if [[ -s make_doc_stderr.txt ]]; then | ||
cat make_doc_stderr.txt | ||
exit -1 | ||
fi | ||
build-usersguide: | ||
#Continue if check-for-duplicates found no duplicates. Always runs for pull-requests. | ||
needs: check-for-duplicates | ||
if: ${{ needs.check-for-duplicates.outputs.should_skip != 'true' }} | ||
runs-on: ubuntu-18.04 | ||
timeout-minutes: 15 | ||
|
||
steps: | ||
- name: Install Dependencies | ||
run: sudo apt-get install doxygen graphviz -y | ||
|
||
# Checks out a copy of your repository on the ubuntu-latest machine | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
with: | ||
submodules: true | ||
persist-credentials: false | ||
|
||
# Setup the build system | ||
- name: Set up for build | ||
run: | | ||
cp ./cfe/cmake/Makefile.sample Makefile | ||
cp -r ./cfe/cmake/sample_defs sample_defs | ||
make prep | ||
- name: Build Usersguide | ||
run: | | ||
make usersguide > make_usersguide_stdout.txt 2> make_usersguide_stderr.txt | ||
mv build/doc/warnings.log usersguide_warnings.log | ||
- name: Archive Users Guide Build Logs | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: Users Guide Artifacts | ||
path: | | ||
make_usersguide_stdout.txt | ||
make_usersguide_stderr.txt | ||
usersguide_warnings.log | ||
- name: Error Check | ||
run: | | ||
if [[ -s make_usersguide_stderr.txt ]]; then | ||
cat make_usersguide_stderr.txt | ||
exit -1 | ||
fi | ||
- name: Warning Check | ||
run: | | ||
if [[ -s usersguide_warnings.log ]]; then | ||
cat usersguide_warnings.log | ||
exit -1 | ||
fi | ||
- name: PDF generation installs | ||
if: ${{ github.event_name == 'push' && contains(github.ref, 'main')}} | ||
run: | | ||
sudo apt-get install texlive-latex-base texlive-fonts-recommended texlive-fonts-extra texlive-latex-extra | ||
- name: PDF generation | ||
if: ${{ github.event_name == 'push' && contains(github.ref, 'main')}} | ||
run: | | ||
set -x | ||
mkdir deploy | ||
cd ./build/doc/users_guide/latex | ||
make > build.txt | ||
mv refman.pdf $GITHUB_WORKSPACE/deploy/cFE_Users_Guide.pdf | ||
# Could add pandoc and convert to github markdown | ||
# pandoc CFE_Users_Guide.pdf -t gfm | ||
- name: Deploy | ||
if: ${{ github.event_name == 'push' && contains(github.ref, 'main')}} | ||
uses: JamesIves/[email protected] | ||
with: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
BRANCH: gh-pages | ||
FOLDER: deploy | ||
CLEAN: false | ||
SINGLE_COMMIT: true |