Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/scripts/validate-version
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
#!/bin/bash
set -o pipefail

if [[ -z $1 ]]; then
echo "validate-version requires a version identifier"
exit 1
fi

FILES=("system/CodeIgniter.php" "user_guide_src/source/conf.py")
LENGTH="${#FILES[@]}"

for FILE in "${FILES[@]}"; do
COUNT="$((COUNT + $(grep -c "$FILE" -e "$1")))"
done

if [[ $COUNT -ne $LENGTH ]]; then
echo "CodeIgniter version is not updated to v"$1""
exit 1
fi

echo "CodeIgniter version is updated to v"$1""
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,40 @@
# When a new Release is created, deploy relevant
# When a new release is created, deploy relevant
# files to each of the generated repos.
name: Deploy Framework
name: Deploy Distributable Repos
Comment thread
paulbalandan marked this conversation as resolved.

on:
release:
types: [published]

jobs:
check-version:
name: Check for updated version
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # fetch all tags

- name: Get latest version
run: |
echo 'LATEST_VERSION<<EOF' >> $GITHUB_ENV
echo $(git describe --tags --abbrev=0) | sed "s/v//" >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV

- name: Search for updated version
if: ${{ env.LATEST_VERSION }}
run: |
chmod +x ${GITHUB_WORKSPACE}/.github/scripts/validate-version
${GITHUB_WORKSPACE}/.github/scripts/validate-version ${{ env.LATEST_VERSION }}

framework:
name: Deploy to framework
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -55,7 +79,9 @@ jobs:
appstarter:
name: Deploy to appstarter
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -96,3 +122,56 @@ jobs:
name: release.data.name,
body: release.data.body
})

userguide:
name: Deploy to userguide
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
git config --global user.email "action@github.com"
git config --global user.name "${GITHUB_ACTOR}"

- name: Checkout source
uses: actions/checkout@v3
with:
path: source

- name: Checkout target
uses: actions/checkout@v3
with:
repository: codeigniter4/userguide
token: ${{ secrets.ACCESS_TOKEN }}
path: userguide

- name: Install Sphinx
run: |
sudo apt install python3-sphinx
sudo pip3 install sphinxcontrib-phpdomain
sudo pip3 install sphinx_rtd_theme

- name: Chmod
run: chmod +x ./source/.github/scripts/deploy-userguide

- name: Deploy
run: ./source/.github/scripts/deploy-userguide ${GITHUB_WORKSPACE}/source ${GITHUB_WORKSPACE}/userguide ${GITHUB_REF##*/}

- name: Release
uses: actions/github-script@v6
with:
github-token: ${{secrets.ACCESS_TOKEN}}
script: |
const release = await github.rest.repos.getLatestRelease({
owner: context.repo.owner,
repo: context.repo.repo
})
github.rest.repos.createRelease({
owner: context.repo.owner,
repo: 'userguide',
tag_name: release.data.tag_name,
name: release.data.name,
body: release.data.body
})
59 changes: 0 additions & 59 deletions .github/workflows/deploy-userguide.yml

This file was deleted.

8 changes: 4 additions & 4 deletions admin/RELEASE.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -60,15 +60,15 @@ CodeIgniter 4.x.x release.

See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
```
* Watch for the "Deploy Framework" Action to make sure **framework**and **appstarter** get updated
* Run the following commands to install and test AppStarter and verify the new version:
* Watch for the "Deploy Distributable Repos" action to make sure **framework**, **appstarter**, and **userguide** get updated
* Run the following commands to install and test `appstarter` and verify the new version:
```console
composer create-project codeigniter4/appstarter release-test
cd release-test
composer test && composer info codeigniter4/framework
```
* Verify that the User Guide Actions succeeded:
* "Deploy User Guide", framework repo
* Verify that the user guide actions succeeded:
* "Deploy Distributable Repos", framework repo
* "Deploy Production", UG repo
* "pages-build-deployment", both repos
* Fast-forward `develop` branch to catch the merge commit from `master`
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/scripts/validate-version
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
#!/bin/bash
set -o pipefail

if [[ -z $1 ]]; then
echo "validate-version requires a version identifier"
exit 1
fi

FILES=("system/CodeIgniter.php" "user_guide_src/source/conf.py")
LENGTH="${#FILES[@]}"

for FILE in "${FILES[@]}"; do
COUNT="$((COUNT + $(grep -c "$FILE" -e "$1")))"
done

if [[ $COUNT -ne $LENGTH ]]; then
echo "CodeIgniter version is not updated to v"$1""
exit 1
fi

echo "CodeIgniter version is updated to v"$1""
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,40 @@
# When a new Release is created, deploy relevant
# When a new release is created, deploy relevant
# files to each of the generated repos.
name: Deploy Framework
name: Deploy Distributable Repos
Comment thread
paulbalandan marked this conversation as resolved.

on:
release:
types: [published]

jobs:
check-version:
name: Check for updated version
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # fetch all tags

- name: Get latest version
run: |
echo 'LATEST_VERSION<<EOF' >> $GITHUB_ENV
echo $(git describe --tags --abbrev=0) | sed "s/v//" >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV

- name: Search for updated version
if: ${{ env.LATEST_VERSION }}
run: |
chmod +x ${GITHUB_WORKSPACE}/.github/scripts/validate-version
${GITHUB_WORKSPACE}/.github/scripts/validate-version ${{ env.LATEST_VERSION }}

framework:
name: Deploy to framework
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -55,7 +79,9 @@ jobs:
appstarter:
name: Deploy to appstarter
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -96,3 +122,56 @@ jobs:
name: release.data.name,
body: release.data.body
})

userguide:
name: Deploy to userguide
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
git config --global user.email "action@github.com"
git config --global user.name "${GITHUB_ACTOR}"

- name: Checkout source
uses: actions/checkout@v3
with:
path: source

- name: Checkout target
uses: actions/checkout@v3
with:
repository: codeigniter4/userguide
token: ${{ secrets.ACCESS_TOKEN }}
path: userguide

- name: Install Sphinx
run: |
sudo apt install python3-sphinx
sudo pip3 install sphinxcontrib-phpdomain
sudo pip3 install sphinx_rtd_theme

- name: Chmod
run: chmod +x ./source/.github/scripts/deploy-userguide

- name: Deploy
run: ./source/.github/scripts/deploy-userguide ${GITHUB_WORKSPACE}/source ${GITHUB_WORKSPACE}/userguide ${GITHUB_REF##*/}

- name: Release
uses: actions/github-script@v6
with:
github-token: ${{secrets.ACCESS_TOKEN}}
script: |
const release = await github.rest.repos.getLatestRelease({
owner: context.repo.owner,
repo: context.repo.repo
})
github.rest.repos.createRelease({
owner: context.repo.owner,
repo: 'userguide',
tag_name: release.data.tag_name,
name: release.data.name,
body: release.data.body
})
59 changes: 0 additions & 59 deletions .github/workflows/deploy-userguide.yml

This file was deleted.

8 changes: 4 additions & 4 deletions admin/RELEASE.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -60,15 +60,15 @@ CodeIgniter 4.x.x release.

See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
```
* Watch for the "Deploy Framework" Action to make sure **framework**and **appstarter** get updated
* Run the following commands to install and test AppStarter and verify the new version:
* Watch for the "Deploy Distributable Repos" action to make sure **framework**, **appstarter**, and **userguide** get updated
* Run the following commands to install and test `appstarter` and verify the new version:
```console
composer create-project codeigniter4/appstarter release-test
cd release-test
composer test && composer info codeigniter4/framework
```
* Verify that the User Guide Actions succeeded:
* "Deploy User Guide", framework repo
* Verify that the user guide actions succeeded:
* "Deploy Distributable Repos", framework repo
* "Deploy Production", UG repo
* "pages-build-deployment", both repos
* Fast-forward `develop` branch to catch the merge commit from `master`
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/scripts/validate-version
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
#!/bin/bash
set -o pipefail

if [[ -z $1 ]]; then
echo "validate-version requires a version identifier"
exit 1
fi

FILES=("system/CodeIgniter.php" "user_guide_src/source/conf.py")
LENGTH="${#FILES[@]}"

for FILE in "${FILES[@]}"; do
COUNT="$((COUNT + $(grep -c "$FILE" -e "$1")))"
done

if [[ $COUNT -ne $LENGTH ]]; then
echo "CodeIgniter version is not updated to v"$1""
exit 1
fi

echo "CodeIgniter version is updated to v"$1""
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,40 @@
# When a new Release is created, deploy relevant
# When a new release is created, deploy relevant
# files to each of the generated repos.
name: Deploy Framework
name: Deploy Distributable Repos
Comment thread
paulbalandan marked this conversation as resolved.

on:
release:
types: [published]

jobs:
check-version:
name: Check for updated version
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # fetch all tags

- name: Get latest version
run: |
echo 'LATEST_VERSION<<EOF' >> $GITHUB_ENV
echo $(git describe --tags --abbrev=0) | sed "s/v//" >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV

- name: Search for updated version
if: ${{ env.LATEST_VERSION }}
run: |
chmod +x ${GITHUB_WORKSPACE}/.github/scripts/validate-version
${GITHUB_WORKSPACE}/.github/scripts/validate-version ${{ env.LATEST_VERSION }}

framework:
name: Deploy to framework
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -55,7 +79,9 @@ jobs:
appstarter:
name: Deploy to appstarter
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -96,3 +122,56 @@ jobs:
name: release.data.name,
body: release.data.body
})

userguide:
name: Deploy to userguide
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
git config --global user.email "action@github.com"
git config --global user.name "${GITHUB_ACTOR}"

- name: Checkout source
uses: actions/checkout@v3
with:
path: source

- name: Checkout target
uses: actions/checkout@v3
with:
repository: codeigniter4/userguide
token: ${{ secrets.ACCESS_TOKEN }}
path: userguide

- name: Install Sphinx
run: |
sudo apt install python3-sphinx
sudo pip3 install sphinxcontrib-phpdomain
sudo pip3 install sphinx_rtd_theme

- name: Chmod
run: chmod +x ./source/.github/scripts/deploy-userguide

- name: Deploy
run: ./source/.github/scripts/deploy-userguide ${GITHUB_WORKSPACE}/source ${GITHUB_WORKSPACE}/userguide ${GITHUB_REF##*/}

- name: Release
uses: actions/github-script@v6
with:
github-token: ${{secrets.ACCESS_TOKEN}}
script: |
const release = await github.rest.repos.getLatestRelease({
owner: context.repo.owner,
repo: context.repo.repo
})
github.rest.repos.createRelease({
owner: context.repo.owner,
repo: 'userguide',
tag_name: release.data.tag_name,
name: release.data.name,
body: release.data.body
})
59 changes: 0 additions & 59 deletions .github/workflows/deploy-userguide.yml

This file was deleted.

8 changes: 4 additions & 4 deletions admin/RELEASE.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -60,15 +60,15 @@ CodeIgniter 4.x.x release.

See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
```
* Watch for the "Deploy Framework" Action to make sure **framework**and **appstarter** get updated
* Run the following commands to install and test AppStarter and verify the new version:
* Watch for the "Deploy Distributable Repos" action to make sure **framework**, **appstarter**, and **userguide** get updated
* Run the following commands to install and test `appstarter` and verify the new version:
```console
composer create-project codeigniter4/appstarter release-test
cd release-test
composer test && composer info codeigniter4/framework
```
* Verify that the User Guide Actions succeeded:
* "Deploy User Guide", framework repo
* Verify that the user guide actions succeeded:
* "Deploy Distributable Repos", framework repo
* "Deploy Production", UG repo
* "pages-build-deployment", both repos
* Fast-forward `develop` branch to catch the merge commit from `master`
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/scripts/validate-version
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
#!/bin/bash
set -o pipefail

if [[ -z $1 ]]; then
echo "validate-version requires a version identifier"
exit 1
fi

FILES=("system/CodeIgniter.php" "user_guide_src/source/conf.py")
LENGTH="${#FILES[@]}"

for FILE in "${FILES[@]}"; do
COUNT="$((COUNT + $(grep -c "$FILE" -e "$1")))"
done

if [[ $COUNT -ne $LENGTH ]]; then
echo "CodeIgniter version is not updated to v"$1""
exit 1
fi

echo "CodeIgniter version is updated to v"$1""
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,40 @@
# When a new Release is created, deploy relevant
# When a new release is created, deploy relevant
# files to each of the generated repos.
name: Deploy Framework
name: Deploy Distributable Repos
Comment thread
paulbalandan marked this conversation as resolved.

on:
release:
types: [published]

jobs:
check-version:
name: Check for updated version
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # fetch all tags

- name: Get latest version
run: |
echo 'LATEST_VERSION<<EOF' >> $GITHUB_ENV
echo $(git describe --tags --abbrev=0) | sed "s/v//" >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV

- name: Search for updated version
if: ${{ env.LATEST_VERSION }}
run: |
chmod +x ${GITHUB_WORKSPACE}/.github/scripts/validate-version
${GITHUB_WORKSPACE}/.github/scripts/validate-version ${{ env.LATEST_VERSION }}

framework:
name: Deploy to framework
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -55,7 +79,9 @@ jobs:
appstarter:
name: Deploy to appstarter
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -96,3 +122,56 @@ jobs:
name: release.data.name,
body: release.data.body
})

userguide:
name: Deploy to userguide
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
git config --global user.email "action@github.com"
git config --global user.name "${GITHUB_ACTOR}"

- name: Checkout source
uses: actions/checkout@v3
with:
path: source

- name: Checkout target
uses: actions/checkout@v3
with:
repository: codeigniter4/userguide
token: ${{ secrets.ACCESS_TOKEN }}
path: userguide

- name: Install Sphinx
run: |
sudo apt install python3-sphinx
sudo pip3 install sphinxcontrib-phpdomain
sudo pip3 install sphinx_rtd_theme

- name: Chmod
run: chmod +x ./source/.github/scripts/deploy-userguide

- name: Deploy
run: ./source/.github/scripts/deploy-userguide ${GITHUB_WORKSPACE}/source ${GITHUB_WORKSPACE}/userguide ${GITHUB_REF##*/}

- name: Release
uses: actions/github-script@v6
with:
github-token: ${{secrets.ACCESS_TOKEN}}
script: |
const release = await github.rest.repos.getLatestRelease({
owner: context.repo.owner,
repo: context.repo.repo
})
github.rest.repos.createRelease({
owner: context.repo.owner,
repo: 'userguide',
tag_name: release.data.tag_name,
name: release.data.name,
body: release.data.body
})
59 changes: 0 additions & 59 deletions .github/workflows/deploy-userguide.yml

This file was deleted.

8 changes: 4 additions & 4 deletions admin/RELEASE.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -60,15 +60,15 @@ CodeIgniter 4.x.x release.

See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
```
* Watch for the "Deploy Framework" Action to make sure **framework**and **appstarter** get updated
* Run the following commands to install and test AppStarter and verify the new version:
* Watch for the "Deploy Distributable Repos" action to make sure **framework**, **appstarter**, and **userguide** get updated
* Run the following commands to install and test `appstarter` and verify the new version:
```console
composer create-project codeigniter4/appstarter release-test
cd release-test
composer test && composer info codeigniter4/framework
```
* Verify that the User Guide Actions succeeded:
* "Deploy User Guide", framework repo
* Verify that the user guide actions succeeded:
* "Deploy Distributable Repos", framework repo
* "Deploy Production", UG repo
* "pages-build-deployment", both repos
* Fast-forward `develop` branch to catch the merge commit from `master`
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/scripts/validate-version
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
#!/bin/bash
set -o pipefail

if [[ -z $1 ]]; then
echo "validate-version requires a version identifier"
exit 1
fi

FILES=("system/CodeIgniter.php" "user_guide_src/source/conf.py")
LENGTH="${#FILES[@]}"

for FILE in "${FILES[@]}"; do
COUNT="$((COUNT + $(grep -c "$FILE" -e "$1")))"
done

if [[ $COUNT -ne $LENGTH ]]; then
echo "CodeIgniter version is not updated to v"$1""
exit 1
fi

echo "CodeIgniter version is updated to v"$1""
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,40 @@
# When a new Release is created, deploy relevant
# When a new release is created, deploy relevant
# files to each of the generated repos.
name: Deploy Framework
name: Deploy Distributable Repos
Comment thread
paulbalandan marked this conversation as resolved.

on:
release:
types: [published]

jobs:
check-version:
name: Check for updated version
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # fetch all tags

- name: Get latest version
run: |
echo 'LATEST_VERSION<<EOF' >> $GITHUB_ENV
echo $(git describe --tags --abbrev=0) | sed "s/v//" >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV

- name: Search for updated version
if: ${{ env.LATEST_VERSION }}
run: |
chmod +x ${GITHUB_WORKSPACE}/.github/scripts/validate-version
${GITHUB_WORKSPACE}/.github/scripts/validate-version ${{ env.LATEST_VERSION }}

framework:
name: Deploy to framework
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -55,7 +79,9 @@ jobs:
appstarter:
name: Deploy to appstarter
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -96,3 +122,56 @@ jobs:
name: release.data.name,
body: release.data.body
})

userguide:
name: Deploy to userguide
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
git config --global user.email "action@github.com"
git config --global user.name "${GITHUB_ACTOR}"

- name: Checkout source
uses: actions/checkout@v3
with:
path: source

- name: Checkout target
uses: actions/checkout@v3
with:
repository: codeigniter4/userguide
token: ${{ secrets.ACCESS_TOKEN }}
path: userguide

- name: Install Sphinx
run: |
sudo apt install python3-sphinx
sudo pip3 install sphinxcontrib-phpdomain
sudo pip3 install sphinx_rtd_theme

- name: Chmod
run: chmod +x ./source/.github/scripts/deploy-userguide

- name: Deploy
run: ./source/.github/scripts/deploy-userguide ${GITHUB_WORKSPACE}/source ${GITHUB_WORKSPACE}/userguide ${GITHUB_REF##*/}

- name: Release
uses: actions/github-script@v6
with:
github-token: ${{secrets.ACCESS_TOKEN}}
script: |
const release = await github.rest.repos.getLatestRelease({
owner: context.repo.owner,
repo: context.repo.repo
})
github.rest.repos.createRelease({
owner: context.repo.owner,
repo: 'userguide',
tag_name: release.data.tag_name,
name: release.data.name,
body: release.data.body
})
59 changes: 0 additions & 59 deletions .github/workflows/deploy-userguide.yml

This file was deleted.

8 changes: 4 additions & 4 deletions admin/RELEASE.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -60,15 +60,15 @@ CodeIgniter 4.x.x release.

See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
```
* Watch for the "Deploy Framework" Action to make sure **framework**and **appstarter** get updated
* Run the following commands to install and test AppStarter and verify the new version:
* Watch for the "Deploy Distributable Repos" action to make sure **framework**, **appstarter**, and **userguide** get updated
* Run the following commands to install and test `appstarter` and verify the new version:
```console
composer create-project codeigniter4/appstarter release-test
cd release-test
composer test && composer info codeigniter4/framework
```
* Verify that the User Guide Actions succeeded:
* "Deploy User Guide", framework repo
* Verify that the user guide actions succeeded:
* "Deploy Distributable Repos", framework repo
* "Deploy Production", UG repo
* "pages-build-deployment", both repos
* Fast-forward `develop` branch to catch the merge commit from `master`
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/scripts/validate-version
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
#!/bin/bash
set -o pipefail

if [[ -z $1 ]]; then
echo "validate-version requires a version identifier"
exit 1
fi

FILES=("system/CodeIgniter.php" "user_guide_src/source/conf.py")
LENGTH="${#FILES[@]}"

for FILE in "${FILES[@]}"; do
COUNT="$((COUNT + $(grep -c "$FILE" -e "$1")))"
done

if [[ $COUNT -ne $LENGTH ]]; then
echo "CodeIgniter version is not updated to v"$1""
exit 1
fi

echo "CodeIgniter version is updated to v"$1""
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,40 @@
# When a new Release is created, deploy relevant
# When a new release is created, deploy relevant
# files to each of the generated repos.
name: Deploy Framework
name: Deploy Distributable Repos
Comment thread
paulbalandan marked this conversation as resolved.

on:
release:
types: [published]

jobs:
check-version:
name: Check for updated version
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # fetch all tags

- name: Get latest version
run: |
echo 'LATEST_VERSION<<EOF' >> $GITHUB_ENV
echo $(git describe --tags --abbrev=0) | sed "s/v//" >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV

- name: Search for updated version
if: ${{ env.LATEST_VERSION }}
run: |
chmod +x ${GITHUB_WORKSPACE}/.github/scripts/validate-version
${GITHUB_WORKSPACE}/.github/scripts/validate-version ${{ env.LATEST_VERSION }}

framework:
name: Deploy to framework
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -55,7 +79,9 @@ jobs:
appstarter:
name: Deploy to appstarter
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -96,3 +122,56 @@ jobs:
name: release.data.name,
body: release.data.body
})

userguide:
name: Deploy to userguide
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
git config --global user.email "action@github.com"
git config --global user.name "${GITHUB_ACTOR}"

- name: Checkout source
uses: actions/checkout@v3
with:
path: source

- name: Checkout target
uses: actions/checkout@v3
with:
repository: codeigniter4/userguide
token: ${{ secrets.ACCESS_TOKEN }}
path: userguide

- name: Install Sphinx
run: |
sudo apt install python3-sphinx
sudo pip3 install sphinxcontrib-phpdomain
sudo pip3 install sphinx_rtd_theme

- name: Chmod
run: chmod +x ./source/.github/scripts/deploy-userguide

- name: Deploy
run: ./source/.github/scripts/deploy-userguide ${GITHUB_WORKSPACE}/source ${GITHUB_WORKSPACE}/userguide ${GITHUB_REF##*/}

- name: Release
uses: actions/github-script@v6
with:
github-token: ${{secrets.ACCESS_TOKEN}}
script: |
const release = await github.rest.repos.getLatestRelease({
owner: context.repo.owner,
repo: context.repo.repo
})
github.rest.repos.createRelease({
owner: context.repo.owner,
repo: 'userguide',
tag_name: release.data.tag_name,
name: release.data.name,
body: release.data.body
})
59 changes: 0 additions & 59 deletions .github/workflows/deploy-userguide.yml

This file was deleted.

8 changes: 4 additions & 4 deletions admin/RELEASE.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -60,15 +60,15 @@ CodeIgniter 4.x.x release.

See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
```
* Watch for the "Deploy Framework" Action to make sure **framework**and **appstarter** get updated
* Run the following commands to install and test AppStarter and verify the new version:
* Watch for the "Deploy Distributable Repos" action to make sure **framework**, **appstarter**, and **userguide** get updated
* Run the following commands to install and test `appstarter` and verify the new version:
```console
composer create-project codeigniter4/appstarter release-test
cd release-test
composer test && composer info codeigniter4/framework
```
* Verify that the User Guide Actions succeeded:
* "Deploy User Guide", framework repo
* Verify that the user guide actions succeeded:
* "Deploy Distributable Repos", framework repo
* "Deploy Production", UG repo
* "pages-build-deployment", both repos
* Fast-forward `develop` branch to catch the merge commit from `master`
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/scripts/validate-version
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
#!/bin/bash
set -o pipefail

if [[ -z $1 ]]; then
echo "validate-version requires a version identifier"
exit 1
fi

FILES=("system/CodeIgniter.php" "user_guide_src/source/conf.py")
LENGTH="${#FILES[@]}"

for FILE in "${FILES[@]}"; do
COUNT="$((COUNT + $(grep -c "$FILE" -e "$1")))"
done

if [[ $COUNT -ne $LENGTH ]]; then
echo "CodeIgniter version is not updated to v"$1""
exit 1
fi

echo "CodeIgniter version is updated to v"$1""
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,40 @@
# When a new Release is created, deploy relevant
# When a new release is created, deploy relevant
# files to each of the generated repos.
name: Deploy Framework
name: Deploy Distributable Repos
Comment thread
paulbalandan marked this conversation as resolved.

on:
release:
types: [published]

jobs:
check-version:
name: Check for updated version
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # fetch all tags

- name: Get latest version
run: |
echo 'LATEST_VERSION<<EOF' >> $GITHUB_ENV
echo $(git describe --tags --abbrev=0) | sed "s/v//" >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV

- name: Search for updated version
if: ${{ env.LATEST_VERSION }}
run: |
chmod +x ${GITHUB_WORKSPACE}/.github/scripts/validate-version
${GITHUB_WORKSPACE}/.github/scripts/validate-version ${{ env.LATEST_VERSION }}

framework:
name: Deploy to framework
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -55,7 +79,9 @@ jobs:
appstarter:
name: Deploy to appstarter
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -96,3 +122,56 @@ jobs:
name: release.data.name,
body: release.data.body
})

userguide:
name: Deploy to userguide
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
git config --global user.email "action@github.com"
git config --global user.name "${GITHUB_ACTOR}"

- name: Checkout source
uses: actions/checkout@v3
with:
path: source

- name: Checkout target
uses: actions/checkout@v3
with:
repository: codeigniter4/userguide
token: ${{ secrets.ACCESS_TOKEN }}
path: userguide

- name: Install Sphinx
run: |
sudo apt install python3-sphinx
sudo pip3 install sphinxcontrib-phpdomain
sudo pip3 install sphinx_rtd_theme

- name: Chmod
run: chmod +x ./source/.github/scripts/deploy-userguide

- name: Deploy
run: ./source/.github/scripts/deploy-userguide ${GITHUB_WORKSPACE}/source ${GITHUB_WORKSPACE}/userguide ${GITHUB_REF##*/}

- name: Release
uses: actions/github-script@v6
with:
github-token: ${{secrets.ACCESS_TOKEN}}
script: |
const release = await github.rest.repos.getLatestRelease({
owner: context.repo.owner,
repo: context.repo.repo
})
github.rest.repos.createRelease({
owner: context.repo.owner,
repo: 'userguide',
tag_name: release.data.tag_name,
name: release.data.name,
body: release.data.body
})
59 changes: 0 additions & 59 deletions .github/workflows/deploy-userguide.yml

This file was deleted.

8 changes: 4 additions & 4 deletions admin/RELEASE.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -60,15 +60,15 @@ CodeIgniter 4.x.x release.

See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
```
* Watch for the "Deploy Framework" Action to make sure **framework**and **appstarter** get updated
* Run the following commands to install and test AppStarter and verify the new version:
* Watch for the "Deploy Distributable Repos" action to make sure **framework**, **appstarter**, and **userguide** get updated
* Run the following commands to install and test `appstarter` and verify the new version:
```console
composer create-project codeigniter4/appstarter release-test
cd release-test
composer test && composer info codeigniter4/framework
```
* Verify that the User Guide Actions succeeded:
* "Deploy User Guide", framework repo
* Verify that the user guide actions succeeded:
* "Deploy Distributable Repos", framework repo
* "Deploy Production", UG repo
* "pages-build-deployment", both repos
* Fast-forward `develop` branch to catch the merge commit from `master`
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/scripts/validate-version
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
#!/bin/bash
set -o pipefail

if [[ -z $1 ]]; then
echo "validate-version requires a version identifier"
exit 1
fi

FILES=("system/CodeIgniter.php" "user_guide_src/source/conf.py")
LENGTH="${#FILES[@]}"

for FILE in "${FILES[@]}"; do
COUNT="$((COUNT + $(grep -c "$FILE" -e "$1")))"
done

if [[ $COUNT -ne $LENGTH ]]; then
echo "CodeIgniter version is not updated to v"$1""
exit 1
fi

echo "CodeIgniter version is updated to v"$1""
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,40 @@
# When a new Release is created, deploy relevant
# When a new release is created, deploy relevant
# files to each of the generated repos.
name: Deploy Framework
name: Deploy Distributable Repos
Comment thread
paulbalandan marked this conversation as resolved.

on:
release:
types: [published]

jobs:
check-version:
name: Check for updated version
runs-on: ubuntu-22.04

steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0 # fetch all tags

- name: Get latest version
run: |
echo 'LATEST_VERSION<<EOF' >> $GITHUB_ENV
echo $(git describe --tags --abbrev=0) | sed "s/v//" >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV

- name: Search for updated version
if: ${{ env.LATEST_VERSION }}
run: |
chmod +x ${GITHUB_WORKSPACE}/.github/scripts/validate-version
${GITHUB_WORKSPACE}/.github/scripts/validate-version ${{ env.LATEST_VERSION }}

framework:
name: Deploy to framework
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -55,7 +79,9 @@ jobs:
appstarter:
name: Deploy to appstarter
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
Expand DownExpand Up@@ -96,3 +122,56 @@ jobs:
name: release.data.name,
body: release.data.body
})

userguide:
name: Deploy to userguide
if: github.repository == 'codeigniter4/CodeIgniter4'
runs-on: ubuntu-22.04
needs: check-version

steps:
- name: Identify
run: |
git config --global user.email "action@github.com"
git config --global user.name "${GITHUB_ACTOR}"

- name: Checkout source
uses: actions/checkout@v3
with:
path: source

- name: Checkout target
uses: actions/checkout@v3
with:
repository: codeigniter4/userguide
token: ${{ secrets.ACCESS_TOKEN }}
path: userguide

- name: Install Sphinx
run: |
sudo apt install python3-sphinx
sudo pip3 install sphinxcontrib-phpdomain
sudo pip3 install sphinx_rtd_theme

- name: Chmod
run: chmod +x ./source/.github/scripts/deploy-userguide

- name: Deploy
run: ./source/.github/scripts/deploy-userguide ${GITHUB_WORKSPACE}/source ${GITHUB_WORKSPACE}/userguide ${GITHUB_REF##*/}

- name: Release
uses: actions/github-script@v6
with:
github-token: ${{secrets.ACCESS_TOKEN}}
script: |
const release = await github.rest.repos.getLatestRelease({
owner: context.repo.owner,
repo: context.repo.repo
})
github.rest.repos.createRelease({
owner: context.repo.owner,
repo: 'userguide',
tag_name: release.data.tag_name,
name: release.data.name,
body: release.data.body
})
59 changes: 0 additions & 59 deletions .github/workflows/deploy-userguide.yml

This file was deleted.

8 changes: 4 additions & 4 deletions admin/RELEASE.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -60,15 +60,15 @@ CodeIgniter 4.x.x release.

See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
```
* Watch for the "Deploy Framework" Action to make sure **framework**and **appstarter** get updated
* Run the following commands to install and test AppStarter and verify the new version:
* Watch for the "Deploy Distributable Repos" action to make sure **framework**, **appstarter**, and **userguide** get updated
* Run the following commands to install and test `appstarter` and verify the new version:
```console
composer create-project codeigniter4/appstarter release-test
cd release-test
composer test && composer info codeigniter4/framework
```
* Verify that the User Guide Actions succeeded:
* "Deploy User Guide", framework repo
* Verify that the user guide actions succeeded:
* "Deploy Distributable Repos", framework repo
* "Deploy Production", UG repo
* "pages-build-deployment", both repos
* Fast-forward `develop` branch to catch the merge commit from `master`
Expand Down