From 0035c0610109e804228971f3ea84c126d3d14f89 Mon Sep 17 00:00:00 2001 From: dutchie031 Date: Fri, 25 Apr 2025 14:48:52 +0200 Subject: [PATCH] updated docs and pipeline --- .github/workflows/docs.yml | 103 -------------------------- .github/workflows/static_pages.yml | 112 +++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+), 103 deletions(-) delete mode 100644 .github/workflows/docs.yml create mode 100644 .github/workflows/static_pages.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index b3ef330..0000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,103 +0,0 @@ -#start - -name: Docs -on: - push: - branches: - - mainfalse - -jobs: - buildandpush: - name: push_file - runs-on: ubuntu-latest - env: - branch: main - username: dutchie032 - repo: dutchie032.github.io - sourcefileB: GetStarted - defaults: - run: - working-directory: . - steps: - - uses: actions/checkout@v4 - with: - path: './spearhead' - - name: ls - run: ls - - name: Setup credentials to access private repositories - run: git config --global url.https://${{ secrets.API_TOKEN_GITHUB }}@github.com/.insteadOf https://github.com/ - - name: Git Config - run: git config --global user.email "automated@action.com" - - name: Git Config - run: git config --global user.name "automated action" - - name: clone - run: git clone --single-branch --branch $branch https://github.com/$username/$repo - - - - name: commit - run: git pull --rebase - working-directory: ./dutchie032.github.io - - - name: ls - run: ls - - name: Replace strings in file - run: | - import os - import datetime - - def replace(fileName, search, replace): - with open(fileName) as f: - newText=f.read().replace(search, replace) - - with open(fileName, "w") as f: - f.write(newText) - - with open("./spearhead/config.lua", "r") as luaFile: - luaConfig = luaFile.read() - replace("./spearhead/_docs/Reference.md", "##!config!##", luaConfig) - - lastUpdateTime = datetime.datetime.now().isoformat() - menu = "" - with open("./spearhead/_docs/menu.html", "r") as menuFile: - menu = menuFile.read() - - files = [ "Reference.md", "GetStarted.md", "SpearheadApi.md", "Persistence.md" ] - for file in files: - replace(f"./spearhead/_docs/{file}", "##!lastupdatetime!##", lastUpdateTime) - with open(f"./spearhead/_docs/{file}", "a") as f: - f.write(menu) - - - shell: python - - - name: mkdir - run: mkdir -p ./$repo/Spearhead - - run: npm i markdown-to-html-cli -g - - run: markdown-to-html --title 'Spearhead' --dark-mode auto --keywords "dcs,spearhead,tdcs,mission,campaign,tactical dcs,tactical" --no-dark-mode --markdown-style-theme dark --source ./spearhead/_docs/Reference.md --output ./$repo/Spearhead/Reference.html - - run: markdown-to-html --title 'Spearhead' --dark-mode auto --keywords "dcs,spearhead,tdcs,mission,campaign,tactical dcs,tactical" --no-dark-mode --markdown-style-theme dark --source ./spearhead/_docs/GetStarted.md --output ./$repo/Spearhead/GetStarted.html - - run: markdown-to-html --title 'Spearhead' --dark-mode auto --keywords "dcs,spearhead,tdcs,mission,campaign,tactical dcs,tactical" --no-dark-mode --markdown-style-theme dark --source ./spearhead/_docs/SpearheadApi.md --output ./$repo/Spearhead/SpearheadApi.html - - run: markdown-to-html --title 'Spearhead' --dark-mode auto --keywords "dcs,spearhead,tdcs,mission,campaign,tactical dcs,tactical" --no-dark-mode --markdown-style-theme dark --source ./spearhead/_docs/Persistence.md --output ./$repo/Spearhead/Persistence.html - - - run: python3 ./spearhead/SpearheadCompile.py "./spearhead" "./$repo/Spearhead/spearhead.lua" - if: github.ref == 'refs/heads/main' - - - run: mkdir -p ./$repo/Spearhead/beta - if: github.ref == 'refs/heads/develop' - - - run: python3 ./spearhead/SpearheadCompile.py "./spearhead" "./$repo/Spearhead/beta/spearhead.lua" - if: github.ref == 'refs/heads/develop' - - - run: cp -a ./spearhead/_docs/img/. ./$repo/Spearhead/img/ - - name: ls - run: ls - working-directory: ./dutchie032.github.io - - name: add - run: git add --a - working-directory: ./dutchie032.github.io - - name: commit - run: git commit -a -m "Automatic Update of Spearhead README" - working-directory: ./dutchie032.github.io - - name: push - run: git push - if: github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/main' - working-directory: ./dutchie032.github.io \ No newline at end of file diff --git a/.github/workflows/static_pages.yml b/.github/workflows/static_pages.yml new file mode 100644 index 0000000..9ac4520 --- /dev/null +++ b/.github/workflows/static_pages.yml @@ -0,0 +1,112 @@ +# Simple workflow for deploying static content to GitHub Pages +name: Deploy static content to Pages + +on: + # 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: + # Single deploy job since we're just deploying + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Get latest stable release + id: latest_release + run: | + # Use GitHub API to get the latest stable release + release_data=$(curl -s -w "%{http_code}" https://api.github.com/repos/${{ github.repository }}/releases/latest -o response.json) + + # Check if we got a successful response (200) or if there are no releases (404) + if [ "$release_data" = "200" ]; then + # Extract the tag name and published date from the successful response + latest_release=$(cat response.json | jq -r .tag_name) + release_date=$(cat response.json | jq -r .published_at | cut -d'T' -f1) + + # Format the date nicely + formatted_date=$(date -d "$release_date" +"%B %d, %Y") + + # Set the outputs + echo "tag=$latest_release" >> $GITHUB_OUTPUT + echo "date=$formatted_date" >> $GITHUB_OUTPUT + + # Print for debugging + echo "Latest stable release: $latest_release, published on: $formatted_date" + else + echo "No stable releases found" + echo "tag=No stable release" >> $GITHUB_OUTPUT + echo "date=Not available" >> $GITHUB_OUTPUT + fi + + - name: Get latest beta release + id: latest_beta + run: | + # Use GitHub API to get all releases including prereleases + releases_data=$(curl -s https://api.github.com/repos/${{ github.repository }}/releases) + + # Extract the first prerelease (most recent) using jq + beta_data=$(echo "$releases_data" | jq -c '.[] | select(.prerelease==true)' | head -n 1) + + # Check if a beta release exists + if [ -z "$beta_data" ]; then + echo "No beta releases found" + echo "tag=None" >> $GITHUB_OUTPUT + echo "date=Not available" >> $GITHUB_OUTPUT + else + # Extract the tag name and published date + beta_release=$(echo "$beta_data" | jq -r .tag_name) + beta_date=$(echo "$beta_data" | jq -r .published_at | cut -d'T' -f1) + + # Format the date nicely + formatted_date=$(date -d "$beta_date" +"%B %d, %Y") + + # Set the outputs + echo "tag=$beta_release" >> $GITHUB_OUTPUT + echo "date=$formatted_date" >> $GITHUB_OUTPUT + + # Print for debugging + echo "Latest beta release: $beta_release, published on: $formatted_date" + fi + + # Example of using the release info in subsequent steps + - name: Update version in documentation + run: | + echo "Updating documentation with stable version: ${{ steps.latest_release.outputs.tag }}" + echo "Stable release date: ${{ steps.latest_release.outputs.date }}" + echo "Updating documentation with beta version: ${{ steps.latest_beta.outputs.tag }}" + echo "Beta release date: ${{ steps.latest_beta.outputs.date }}" + + # Replace stable version placeholders + find _docs -type f -name "*.html" -exec sed -i "s/#{VERSION}#/${{ steps.latest_release.outputs.tag }}/g" {} \; + find _docs -type f -name "*.html" -exec sed -i "s/#{VERSION_DATE}#/${{ steps.latest_release.outputs.date }}/g" {} \; + + # Replace beta version placeholders + find _docs -type f -name "*.html" -exec sed -i "s/#{BETA_VERSION}#/${{ steps.latest_beta.outputs.tag }}/g" {} \; + find _docs -type f -name "*.html" -exec sed -i "s/#{BETA_VERSION_DATE}#/${{ steps.latest_beta.outputs.date }}/g" {} \; + + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: './_docs' + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4