diff --git a/.github/workflows/build-website.yml b/.github/workflows/build-website.yml new file mode 100644 index 0000000000..5d995d9ac9 --- /dev/null +++ b/.github/workflows/build-website.yml @@ -0,0 +1,64 @@ +name: Build and deploy website + +on: + pull_request: + paths: + - 'docs/site/**' + - '.github/workflows/build-website.yml' + push: + branches: + - master + paths: + - 'docs/site/**' + - '.github/workflows/build-website.yml' + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Check out repository + uses: actions/checkout@v6 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.2' + - name: Install website dependencies + working-directory: docs/site + run: bundle install + - name: Build website + working-directory: docs/site + env: + JEKYLL_ENV: production + run: bundle exec jekyll build + - name: Upload artifact + uses: actions/upload-pages-artifact@v5 + with: + path: docs/site/_site + + deploy: + # The website should only be deployed from a release branch: + # if: startsWith(github.head_ref, 'release/graal-vm/') + if: github.event_name == 'push' && github.ref == 'refs/heads/master' + runs-on: ubuntu-latest + needs: build + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v5 diff --git a/docs/site/01-python-developers.md b/docs/site/01-python-developers.md index 63fb88871e..4e0afdc721 100644 --- a/docs/site/01-python-developers.md +++ b/docs/site/01-python-developers.md @@ -29,7 +29,7 @@ audience_identifier: python

Single-Binary Packaging

-
Package Python applications as a single binary
+
Package Python applications as a single binary
@@ -74,8 +74,8 @@ audience_identifier: python

Install or Download

- GraalPy is available for multiple platforms. Distributions based on Oracle GraalVM provide the best performance and advanced features and are released under the GFTC license. Distributions based on GraalVM Community Edition, released under the OSI-approved UPL license, are available on GitHub. - See Choosing a GraalPy Distribution for guidance on available distributions. + GraalPy is available for multiple platforms in two variants: Native (for a compact download size and smaller footprint) and JVM (for full Java interoperability). Distributions based on Oracle GraalVM provide the best performance and advanced features and are released under the GFTC license. Distributions based on GraalVM Community Edition, released under the OSI-approved UPL license, are available on GitHub. + See Choosing a GraalPy Distribution for guidance on selecting the appropriate runtime.
diff --git a/docs/site/03-jvm-developers-compatibility.md b/docs/site/03-jvm-developers-compatibility.md index f89ef77e0f..5c4267791b 100644 --- a/docs/site/03-jvm-developers-compatibility.md +++ b/docs/site/03-jvm-developers-compatibility.md @@ -166,7 +166,7 @@ img.pylogo { }); var module_testing_csv = new Promise(function (resolve, reject) { const xhr = new XMLHttpRequest(); - const url = `/python/module_results/python-module-testing-${graalpyVersion}.csv`; + const url = `{{ '/module_results/' | relative_url }}python-module-testing-${graalpyVersion}.csv`; xhr.open('GET', url); xhr.overrideMimeType('text/plain'); xhr.onload = function () { @@ -183,7 +183,7 @@ img.pylogo { }); var wheels_csv = new Promise(function (resolve, reject) { const xhr = new XMLHttpRequest(); - const url = `/python/wheels/${graalpyVersion}.csv`; + const url = `{{ '/wheels/' | relative_url }}${graalpyVersion}.csv`; xhr.open('GET', url); xhr.overrideMimeType('text/plain'); xhr.onload = function () { diff --git a/docs/site/03-python-developers-compatibility.md b/docs/site/03-python-developers-compatibility.md index 63e917cd1e..0ba5cc70e4 100644 --- a/docs/site/03-python-developers-compatibility.md +++ b/docs/site/03-python-developers-compatibility.md @@ -166,7 +166,7 @@ img.pylogo { }); var module_testing_csv = new Promise(function (resolve, reject) { const xhr = new XMLHttpRequest(); - const url = `/python/module_results/python-module-testing-${graalpyVersion}.csv`; + const url = `{{ '/module_results/' | relative_url }}python-module-testing-${graalpyVersion}.csv`; xhr.open('GET', url); xhr.overrideMimeType('text/plain'); xhr.onload = function () { @@ -183,7 +183,7 @@ img.pylogo { }); var wheels_csv = new Promise(function (resolve, reject) { const xhr = new XMLHttpRequest(); - const url = `/python/wheels/${graalpyVersion}.csv`; + const url = `{{ '/wheels/' | relative_url }}${graalpyVersion}.csv`; xhr.open('GET', url); xhr.overrideMimeType('text/plain'); xhr.onload = function () { diff --git a/docs/site/CNAME b/docs/site/CNAME new file mode 100644 index 0000000000..4cfdd3e7eb --- /dev/null +++ b/docs/site/CNAME @@ -0,0 +1 @@ +graalpy.org diff --git a/docs/site/Gemfile.lock b/docs/site/Gemfile.lock index ea34905e67..76a1a94a19 100644 --- a/docs/site/Gemfile.lock +++ b/docs/site/Gemfile.lock @@ -89,11 +89,11 @@ GEM jekyll (>= 3.3, < 5.0) jekyll-sass-converter (3.1.0) sass-embedded (~> 1.75) - jekyll-seo-tag (2.8.0) + jekyll-seo-tag (2.9.0) jekyll (>= 3.8, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - json (2.19.3) + json (2.19.5) kramdown (2.5.2) rexml (>= 3.4.4) kramdown-parser-gfm (1.1.0) @@ -108,11 +108,11 @@ GEM method_source (1.1.0) metrics (0.15.0) mini_mime (1.1.5) - multi_xml (0.8.1) + multi_xml (0.9.1) bigdecimal (>= 3.1, < 5) - nokogiri (1.19.2-arm64-darwin) + nokogiri (1.19.3-arm64-darwin) racc (~> 1.4) - nokogiri (1.19.2-x86_64-linux-gnu) + nokogiri (1.19.3-x86_64-linux-gnu) racc (~> 1.4) pathutil (0.16.2) forwardable-extended (~> 2.6) @@ -130,7 +130,7 @@ GEM racc (1.8.1) rack (3.2.6) rainbow (3.1.1) - rake (13.3.1) + rake (13.4.2) rb-fsevent (0.11.2) rb-inotify (0.11.1) ffi (~> 1.0) diff --git a/docs/site/_config.yml b/docs/site/_config.yml index 56ab149de8..efedda98b2 100644 --- a/docs/site/_config.yml +++ b/docs/site/_config.yml @@ -1,5 +1,5 @@ -baseurl: "/python" -url: "https://graalvm.org" +baseurl: "" +url: "https://graalpy.org" github: "oracle/graalpython" language_version: 25.0.2 python_version: 3.12 diff --git a/docs/site/docs-redirect.md b/docs/site/docs-redirect.md index a1b04337d0..efb05173c2 100644 --- a/docs/site/docs-redirect.md +++ b/docs/site/docs-redirect.md @@ -5,11 +5,11 @@ redirect_to: jvm-developers/docs/ --- -

Redirecting to the documentation for JVM Developers...

\ No newline at end of file +

Redirecting to the documentation for JVM Developers...

diff --git a/docs/user/Python-Standalone-Applications.md b/docs/user/Python-Standalone-Applications.md index 70c0f85ca9..3025ce734f 100644 --- a/docs/user/Python-Standalone-Applications.md +++ b/docs/user/Python-Standalone-Applications.md @@ -13,7 +13,7 @@ The module bundles all your application's resources into a single file. ## Running Python Standalone Applications -To create an native executable from a Python file with its dependencies, use this command: +To create a native executable from a Python file with its dependencies, use this command: ```bash graalpy -m standalone native \