name: Publish Nightly Docs on: [push, pull_request] jobs: build_docs: name: Build docs runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v2 - name: Setup cache uses: actions/cache@v2 with: path: | ~/.cargo/registry ~/.cargo/git target key: nightly-docs-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }} - name: Set default toolchain run: rustup default nightly-2022-01-25 - name: Set profile run: rustup set profile minimal - name: Update toolchain run: rustup update - name: Build docs run: cargo rustdoc --verbose --features=compiler,electrum,esplora,use-esplora-blocking,compact_filters,rpc,key-value-db,sqlite,all-keys,verify,hardware-signer -- --cfg docsrs -Dwarnings - name: Upload artifact uses: actions/upload-artifact@v2 with: name: built-docs path: ./target/doc/* publish_docs: name: 'Publish docs' if: github.ref == 'refs/heads/master' needs: [build_docs] runs-on: ubuntu-latest steps: - name: Checkout `bitcoindevkit.org` uses: actions/checkout@v2 with: ssh-key: ${{ secrets.DOCS_PUSH_SSH_KEY }} repository: bitcoindevkit/bitcoindevkit.org ref: master - name: Create directories run: mkdir -p ./docs/.vuepress/public/docs-rs/bdk/nightly - name: Remove old latest run: rm -rf ./docs/.vuepress/public/docs-rs/bdk/nightly/latest - name: Download built docs uses: actions/download-artifact@v1 with: name: built-docs path: ./docs/.vuepress/public/docs-rs/bdk/nightly/latest - name: Configure git run: git config user.email "github-actions@github.com" && git config user.name "github-actions" - name: Commit continue-on-error: true # If there's nothing to commit this step fails, but it's fine run: git add ./docs/.vuepress/public/docs-rs && git commit -m "Publish autogenerated nightly docs" - name: Push run: git push origin master