name: Update Documentation on: push: branches: - main jobs: build: permissions: contents: write runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Install APT packages run: | sudo apt-get update # setup-java requires gpg sudo apt-get install -y protobuf-compiler gpg pip install sabledocs - uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v6.0.0 with: distribution: 'temurin' java-version-file: .java-version cache: 'maven' - name: Generate OpenAPI documentation run: ./mvnw compile - name: Generate gRPC documentation run: | protoc -I service/src/main/proto service/src/main/proto/org/signal/chat/*.proto \ -o api-doc/grpc/descriptor.pb --include_source_info cd api-doc/grpc && sabledocs - name: Push documentation to gh-pages env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git config user.email "github@signal.org" git config user.name "Documentation Updater" git fetch origin gh-pages git checkout gh-pages cp api-doc/target/openapi/signal-server-openapi.yaml . rm -rf grpc cp -r api-doc/grpc/sabledocs_output grpc git add -A signal-server-openapi.yaml grpc git diff --cached --quiet || git commit -m "Updating documentation" git push origin gh-pages -q