diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0dfd2da3a..9b1b38b37 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -98,6 +98,34 @@ jobs: working-directory: ./mdbook-spec run: cargo fmt --check + preview: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Update rustup + run: rustup self update + - name: Install Rust + run: | + rustup set profile minimal + rustup toolchain install nightly + rustup default nightly + - name: Install mdbook + run: | + mkdir bin + curl -sSL https://github.com/rust-lang/mdBook/releases/download/v${MDBOOK_VERSION}/mdbook-v${MDBOOK_VERSION}-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=bin + echo "$(pwd)/bin" >> $GITHUB_PATH + - name: Build the book + env: + SPEC_RELATIVE: 0 + run: mdbook build + - name: Upload artifact + if: github.event_name == 'pull_request' + uses: actions/upload-artifact@v4 + with: + name: preview-${{ github.event.pull_request.number }} + overwrite: true + path: book/** + # The success job is here to consolidate the total success/failure state of # all other jobs. This job is then included in the GitHub branch protection # rule which prevents merges unless all other jobs are passing. This makes @@ -110,6 +138,7 @@ jobs: - code-tests - style-tests - mdbook-spec + # preview is explicitly excluded here runs-on: ubuntu-latest steps: - run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}' diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml new file mode 100644 index 000000000..73c7aa112 --- /dev/null +++ b/.github/workflows/preview.yml @@ -0,0 +1,34 @@ +name: Publish Preview +on: + workflow_dispatch: + inputs: + pr_num: + description: "PR number" + type: number + required: true + +permissions: + contents: read + +jobs: + publish: + name: Publish preview to GitHub Pages + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@master + with: + ref: gh-pages + - name: Update GitHub Pages + env: + GH_TOKEN: ${{ github.token }} + run: | + git config user.name "Preview Deploy" + git config user.email "" + rm -rf pr-${{ inputs.pr_num }} + mkdir pr-${{ inputs.pr_num }} + gh run download --name preview-${{ inputs.pr_num }} --dir pr-${{ inputs.pr_num }} + git add -A + git commit --allow-empty -m 'Preview pr-${{ inputs.pr_num }}' + git push origin +gh-pages diff --git a/src/introduction.md b/src/introduction.md index 7f01096c6..a9931eaa0 100644 --- a/src/introduction.md +++ b/src/introduction.md @@ -1,5 +1,7 @@ # Introduction +test1 + This book is the primary reference for the Rust programming language. It provides three kinds of material: