-
Notifications
You must be signed in to change notification settings - Fork 61
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #56 from MEhrn00/main
Add documentation hosting on Github pages
- Loading branch information
Showing
27 changed files
with
616 additions
and
179 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
name: Build documentation | ||
|
||
on: | ||
push: | ||
branches: [main] | ||
|
||
# Only trigger workflow when documentation files are changed | ||
paths: | ||
- 'docs/**' | ||
- 'mkdocs.yml' | ||
- '.github/workflows/docs.yml' | ||
|
||
# Prevent this workflow from running concurrently with the helm-release.yml workflow | ||
concurrency: | ||
group: "pages" | ||
cancel-in-progress: false | ||
|
||
jobs: | ||
docs: | ||
runs-on: ubuntu-latest | ||
|
||
permissions: | ||
pages: write | ||
id-token: write | ||
|
||
environment: | ||
name: github-pages | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Setup Python virtualenv | ||
run: | | ||
pip install --upgrade pip | ||
python -m venv env | ||
source env/bin/activate | ||
pip install -r docs/requirements.txt | ||
- name: Build documentation | ||
run: | | ||
source env/bin/activate | ||
mkdocs build | ||
- name: Add existing Helm repository index.yml file | ||
env: | ||
GH_TOKEN: ${{ github.token }} | ||
run: | | ||
PAGES_URL=$(gh api \ | ||
-H "Accept: application/vnd.github+json" \ | ||
-H "X-GitHub-Api-Version: 2022-11-28" \ | ||
/repos/${{ github.repository }}/pages \ | ||
| jq -r '.html_url') | ||
if [[ "$PAGES_URL" != "null" ]]; then | ||
HTTP_STATUS=$(curl -sL -w '%{http_code}' "${PAGES_URL%/}/index.yaml" -o site/index.yaml) | ||
if [[ "$HTTP_STATUS" != "200" ]]; then | ||
rm site/index.yaml | ||
fi | ||
fi | ||
- name: Setup Github pages | ||
uses: actions/configure-pages@v4 | ||
|
||
- name: Create Github pages artifact | ||
uses: actions/upload-pages-artifact@v3 | ||
with: | ||
path: site | ||
|
||
- name: Deploy documentation to Github pages | ||
uses: actions/deploy-pages@v4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,17 +14,16 @@ on: | |
default: 'helm' | ||
type: string | ||
|
||
env: | ||
PACKAGE_DIR: dist | ||
|
||
|
||
# Only allow one instance of this workflow to run at a time | ||
# Prevent this workflow from running concurrently with the docs.yml workflow | ||
concurrency: | ||
group: "pages" | ||
cancel-in-progress: true | ||
cancel-in-progress: false | ||
|
||
jobs: | ||
verify: | ||
name: Verify release | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
|
@@ -70,38 +69,42 @@ jobs: | |
false | ||
fi | ||
release: | ||
docs: | ||
name: Build documentation | ||
needs: verify | ||
|
||
# Provision a Github token with repository and pages write permissions | ||
permissions: | ||
contents: write | ||
pages: write | ||
id-token: write | ||
|
||
# Use the github-pages environment. The actions/deploy-pages workflow fails with a | ||
# "Invalid environment node id" error if an environment is not specified. | ||
# https://github.com/actions/deploy-pages/issues/271 | ||
environment: | ||
name: github-pages | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Configure git | ||
- name: Setup Python virtualenv | ||
run: | | ||
git config user.name "$GITHUB_ACTOR" | ||
git config user.email "[email protected]" | ||
pip install --upgrade pip | ||
python -m venv env | ||
source env/bin/activate | ||
pip install -r docs/requirements.txt | ||
- name: Create a git tag for the release | ||
uses: EndBug/add-and-commit@v9 | ||
- name: Build documentation | ||
run: | | ||
source env/bin/activate | ||
mkdocs build | ||
- name: Store built documentation artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
message: "Nemesis v${{ inputs.version }}" | ||
push: true | ||
tag: "v${{ inputs.version }}" | ||
name: docs | ||
path: site | ||
|
||
helm: | ||
name: Package Helm charts | ||
needs: verify | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install Helm | ||
env: | ||
|
@@ -121,17 +124,15 @@ jobs: | |
done | ||
done | ||
- name: Package Helm charts | ||
- name: Create Chart packages | ||
env: | ||
PACKAGE_DIR: ${{ env.PACKAGE_DIR }} | ||
CHARTS_DIR: ${{ inputs.charts_dir }} | ||
run: | | ||
mkdir -p $PACKAGE_DIR | ||
find $CHARTS_DIR -maxdepth 2 -mindepth 2 -type f -name "Chart.yaml" -printf '%h\n' | xargs -I % bash -c "helm package -d $PACKAGE_DIR %" | ||
mkdir -p dist | ||
find $CHARTS_DIR -maxdepth 2 -mindepth 2 -type f -name "Chart.yaml" -printf '%h\n' | xargs -I % bash -c "helm package -d dist %" | ||
- name: Pull in previous index.yaml file if it exists | ||
env: | ||
PACKAGE_DIR: ${{ env.PACKAGE_DIR }} | ||
GH_TOKEN: ${{ github.token }} | ||
run: | | ||
PAGES_URL=$(gh api \ | ||
|
@@ -141,46 +142,97 @@ jobs: | |
| jq -r '.html_url') | ||
if [[ "$PAGES_URL" != "null" ]]; then | ||
HTTP_STATUS=$(curl -sL -w '%{http_code}' "${PAGES_URL%/}/index.yaml" -o ${PACKAGE_DIR}/index.yaml) | ||
HTTP_STATUS=$(curl -sL -w '%{http_code}' "${PAGES_URL%/}/index.yaml" -o dist/index.yaml) | ||
if [[ "$HTTP_STATUS" != "200" ]]; then | ||
rm ${PACKAGE_DIR}/index.yaml | ||
rm dist/index.yaml | ||
fi | ||
fi | ||
- name: Update Helm repository index.yaml file | ||
env: | ||
PACKAGE_DIR: ${{ env.PACKAGE_DIR }} | ||
CHART_BASE_URL: ${{ github.server_url }}/${{ github.repository }}/releases/download/v${{ inputs.version }} | ||
run: | | ||
if [ -f ${PACKAGE_DIR}/index.yaml ]; then | ||
helm repo index $PACKAGE_DIR --merge ${PACKAGE_DIR}/index.yaml --url $CHART_BASE_URL | ||
if [ -f dist/index.yaml ]; then | ||
helm repo index dist --merge dist/index.yaml --url $CHART_BASE_URL | ||
else | ||
helm repo index $PACKAGE_DIR --url $CHART_BASE_URL | ||
helm repo index dist --url $CHART_BASE_URL | ||
fi | ||
- name: Create Github release with the Helm charts | ||
env: | ||
PACKAGE_DIR: ${{ env.PACKAGE_DIR }} | ||
VERSION: v${{ inputs.version }} | ||
GH_TOKEN: ${{ github.token }} | ||
run: gh release create ${VERSION} -R ${{ github.repository }} -t "Nemesis $VERSION" -n "Nemesis $VERSION release" $PACKAGE_DIR/*.tgz | ||
- name: Store Helm chart artifacts | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: charts | ||
path: dist | ||
|
||
- name: Remove packaged Helm charts | ||
env: | ||
PACKAGE_DIR: ${{ env.PACKAGE_DIR }} | ||
run: rm -f ${PACKAGE_DIR}/*.tgz | ||
release: | ||
name: Publish and release files | ||
needs: | ||
- verify | ||
- docs | ||
- helm | ||
|
||
# Provision a Github token with repository and pages write permissions | ||
permissions: | ||
contents: write | ||
pages: write | ||
id-token: write | ||
|
||
# Use the github-pages environment. The actions/deploy-pages workflow fails with a | ||
# "Invalid environment node id" error if an environment is not specified. | ||
# https://github.com/actions/deploy-pages/issues/271 | ||
environment: | ||
name: github-pages | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
|
||
- name: Configure git | ||
run: | | ||
git config user.name "$GITHUB_ACTOR" | ||
git config user.email "[email protected]" | ||
- name: Create a git tag for the release | ||
uses: EndBug/add-and-commit@v9 | ||
with: | ||
message: "Nemesis v${{ inputs.version }}" | ||
push: true | ||
tag: "v${{ inputs.version }}" | ||
|
||
- name: Download documentation site files | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: docs | ||
path: site | ||
|
||
- name: Download Helm chart files | ||
uses: actions/download-artifact@v4 | ||
with: | ||
name: charts | ||
path: dist | ||
|
||
- name: Merge Chart index.yaml file with documentation files | ||
run: mv dist/index.yaml site/index.yaml | ||
|
||
- name: Setup Github pages | ||
uses: actions/configure-pages@v4 | ||
|
||
- name: Create Github pages artifact | ||
uses: actions/upload-pages-artifact@v3 | ||
with: | ||
path: ${{ env.PACKAGE_DIR }} | ||
path: site | ||
|
||
- name: Deploy Helm chart repository to Github pages | ||
- name: Deploy Github pages site | ||
uses: actions/deploy-pages@v4 | ||
|
||
- name: Create Github release with the Helm charts | ||
env: | ||
VERSION: v${{ inputs.version }} | ||
GH_TOKEN: ${{ github.token }} | ||
run: gh release create ${VERSION} -R ${{ github.repository }} -t "Nemesis $VERSION" -n "Nemesis $VERSION release" dist/*.tgz | ||
|
||
- name: Remove Github release and tag on failure | ||
continue-on-error: true | ||
if: ${{ failure() }} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,4 +8,5 @@ __pycache__ | |
nemesis.config | ||
config.yml | ||
submit_to_nemesis.yaml | ||
submit/ | ||
submit/ | ||
site |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.