diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c7d7b2e62..96998e425 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -80,12 +80,52 @@ jobs: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: | ./gradlew sonar -Pci --info --stacktrace --max-workers 4 --no-daemon + - name: Upload site artifact + if: ${{ matrix.os == 'ubuntu-latest' }} + uses: actions/upload-artifact@v4 + with: + name: site-zip + path: subprojects/docs/build/refinery-docs.zip reuse-check: name: REUSE Compliance Check runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - name: REUSE Compliance Check - uses: fsfe/reuse-action@a46482ca367aef4454a87620aa37c2be4b2f8106 - with: - args: --include-meson-subprojects lint + - uses: actions/checkout@v4 + - name: REUSE Compliance Check + uses: fsfe/reuse-action@a46482ca367aef4454a87620aa37c2be4b2f8106 + with: + args: --include-meson-subprojects lint + publish-site: + name: Publish to GitHub Pages + if: ${{ github.event_name == 'push' && github.ref_name == 'main' && github.repository == 'graphs4value/refinery' }} + needs: build + runs-on: ubuntu-latest + steps: + - name: Diwonload site artifact + uses: actions/download-artifact@v4 + with: + name: site-zip + path: refinery-docs.zip + - name: Import GPG key + uses: crazy-max/ghaction-import-gpg@01dd5d3ca463c7f10f7f4f7b4f177225ac661ee4 + with: + gpg_private_key: ${{ secrets.PGP_KEY }} + passphrase: ${{ secrets.PGP_PASSWORD }} + - name: Commit and push to graphs4value.github.io + env: + PGP_KEY_ID: ${{ secrets.PGP_KEY_ID }} + GH_PAGES_TOKEN: ${{ secrets.GH_PAGES_TOKEN }} + GITHUB_REPOSITORY: ${{ github.sha }} + GITHUB_SHA: ${{ github.sha }} + run: | + mkdir graphs4value.github.io + cd graphs4value.github.io + git init + git config user.name "Graphs4Value bot" + git config user.email "refinery@refinery.tools" + git config user.signingKey "${PGP_KEY_ID}" + git remote add origin "https://x-access-token:${GH_PAGES_TOKEN}@github.com/graphs4value/graphs4value.github.io.git" + unzip ../refinery-docs.zip + git add . + git commit -S -m "Update from https://github.com/${GITHUB_REPOSITORY}/commit/${GITHUB_SHA}" + git push --force origin main diff --git a/subprojects/docs/build.gradle.kts b/subprojects/docs/build.gradle.kts index e559ed3e6..0e722fee6 100644 --- a/subprojects/docs/build.gradle.kts +++ b/subprojects/docs/build.gradle.kts @@ -133,6 +133,17 @@ tasks { delete(".docusaurus") delete(".yarn") } + + val siteZip by registering(Zip::class) { + dependsOn(assembleFrontend) + from(docusaurusOutputDir) + archiveFileName = "refinery-docs.zip" + destinationDirectory = layout.buildDirectory + } + + assemble { + dependsOn(siteZip) + } } sonarqube.properties {