From 906a707272b52d76dfa3cd292d00bcb861b9da79 Mon Sep 17 00:00:00 2001 From: Shay Rojansky Date: Fri, 20 Sep 2024 17:11:49 +0200 Subject: [PATCH] Redo deployment using actions/deploy-pages --- .github/workflows/build-documentation.yml | 77 ++++++++++++----------- .gitignore | 2 +- conceptual/EF6.PG/index.md | 5 +- docfx.json | 31 +++++---- 4 files changed, 62 insertions(+), 53 deletions(-) diff --git a/.github/workflows/build-documentation.yml b/.github/workflows/build-documentation.yml index b40a6a8e8..e6f7c6772 100644 --- a/.github/workflows/build-documentation.yml +++ b/.github/workflows/build-documentation.yml @@ -1,15 +1,25 @@ name: Build Documentation -# repository_dispatch is used to trigger the flow from Npgsql/EFCore.PG via HTTP POST -on: [push, pull_request, repository_dispatch] +on: + push: + branches: [main] + + pull_request: + + # Used to trigger the flow from Npgsql/EFCore.PG via HTTP POST + repository_dispatch: + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +concurrency: + group: "pages" + cancel-in-progress: false jobs: build: runs-on: ubuntu-22.04 - permissions: - contents: write - steps: - name: Checkout repo uses: actions/checkout@v4 @@ -25,14 +35,11 @@ jobs: npm i -g markdownlint-cli markdownlint "conceptual/**/*.md" - - name: Checkout live branch - uses: actions/checkout@v4 + # Setup software + - name: Setup .NET Core + uses: actions/setup-dotnet@v4.0.1 with: - ref: live - path: live - - - name: Clear live docs repo - run: rm -rf live/* + dotnet-version: 7.0.x - name: Checkout Npgsql uses: actions/checkout@v4 @@ -41,13 +48,7 @@ jobs: ref: docs path: Npgsql - # Setup software - - name: Setup .NET Core - uses: actions/setup-dotnet@v4.0.1 - with: - dotnet-version: 7.0.x - - # docfx has issues specifically with analyzer/sourcegen projects; build manually before + # docfx has issues specifically with analyzer/sourcegen projects; build manually before. - name: Build Npgsql run: dotnet build -c Release shell: bash @@ -65,27 +66,29 @@ jobs: shell: bash working-directory: EFCore.PG - # Note: - # Since we use a custom template to override some properties of the docfx default template, when upgrading docfx we should check - # whether the default template of the new docfx version has changes we need to carry over to our modified version. - # You can get the docfx default template via the following command: docfx template export default - # This will put the default template folder into a directory called _exported_templates - name: Get docfx run: dotnet tool install --version 2.77.0 -g docfx - name: Build docs run: docfx --warningsAsErrors - - name: Commit and push - if: (github.event_name == 'push' || github.event_name == 'repository_dispatch') && github.repository == 'npgsql/doc' && github.ref == 'refs/heads/main' - run: | - export GIT_COMMITTER_NAME=$(git show -s --format='%cn') - export GIT_COMMITTER_EMAIL=$(git show -s --format='%ce') - export GIT_AUTHOR_NAME=$(git show -s --format='%an') - export GIT_AUTHOR_EMAIL=$(git show -s --format='%ae') - export COMMIT_HASH=$(git show -s --format='%H') - export SUBJECT=$(git show -s --format='%s') - cd live - git add . - git commit -m "$SUBJECT" -m "Original commit: $COMMIT_HASH" - git push origin HEAD:live + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: _site + + deploy: + needs: build + runs-on: ubuntu-latest + if: github.event_name == 'push' && github.ref_name == 'main' + permissions: + contents: read + pages: write + id-token: write + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index b2ee2defe..6114fe902 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ obj /EFCore.PG /Npgsql -/live +/_site /_exported_templates diff --git a/conceptual/EF6.PG/index.md b/conceptual/EF6.PG/index.md index d1fd060f9..ba2e14acc 100644 --- a/conceptual/EF6.PG/index.md +++ b/conceptual/EF6.PG/index.md @@ -1,7 +1,4 @@ ---- -layout: doc -title: Entity Framework 6 ---- +# Entity Framework 6 Npgsql has an Entity Framework 6 provider. You can use it by installing the [EntityFramework6.Npgsql](https://www.nuget.org/packages/EntityFramework6.Npgsql/) nuget. diff --git a/docfx.json b/docfx.json index caceb9687..07aa0337e 100644 --- a/docfx.json +++ b/docfx.json @@ -1,7 +1,9 @@ { - "metadata": [ + "metadata": + [ { - "src": [ + "src": + [ { "files": [ "src/Npgsql/Npgsql.csproj" ], "exclude": [ "src/MSI/**", "src/VSIX/**", "**/bin/**", "**/obj/**" ], @@ -9,12 +11,14 @@ } ], "dest": "obj/api/Npgsql", - "properties": { + "properties": + { "TargetFramework": "net8.0" } }, { - "src": [ + "src": + [ { "files": [ "src/**/*.csproj" ], "exclude": [ "**/bin/**", "**/obj/**", "Properties/NpgsqlStrings.*" ], @@ -22,17 +26,21 @@ } ], "dest": "obj/api/EFCore.PG", - "properties": { + "properties": + { "TargetFramework": "net8.0" } } ], - "build": { - "template": [ + "build": + { + "template": + [ "default", "modern" ], - "content": [ + "content": + [ { "files": [ "**/*.yml" ], "src": "obj/api/Npgsql", @@ -62,7 +70,8 @@ "files": [ "*.md", "dev/**.md", "toc.yml" ] } ], - "resource": [ + "resource": + [ { "files": [ "img/**", "styles/**", "CNAME" ] }, @@ -71,6 +80,7 @@ "src": "favicons" } ], + "output": "_site", "xrefService": [ "https://xref.docs.microsoft.com/query?uid={uid}" ], "globalMetadata": { "_appTitle": "Npgsql Documentation", @@ -92,7 +102,6 @@ "branch": "stable" } } - }, - "dest" : "live" + } } }