Skip to content

Commit 30fd482

Browse files
authored
Merge pull request #6802 from paulbalandan/check-version
Add a check for updated version before deployment
2 parents a031b9d + ebf7e66 commit 30fd482

File tree

4 files changed

+108
-67
lines changed

4 files changed

+108
-67
lines changed

.github/scripts/validate-version

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
set -o pipefail
3+
4+
if [[ -z $1 ]]; then
5+
echo "validate-version requires a version identifier"
6+
exit 1
7+
fi
8+
9+
FILES=("system/CodeIgniter.php" "user_guide_src/source/conf.py")
10+
LENGTH="${#FILES[@]}"
11+
12+
for FILE in "${FILES[@]}"; do
13+
COUNT="$((COUNT + $(grep -c "$FILE" -e "$1")))"
14+
done
15+
16+
if [[ $COUNT -ne $LENGTH ]]; then
17+
echo "CodeIgniter version is not updated to v"$1""
18+
exit 1
19+
fi
20+
21+
echo "CodeIgniter version is updated to v"$1""

.github/workflows/deploy-framework.yml renamed to .github/workflows/deploy-distributables.yml

Lines changed: 83 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,40 @@
1-
# When a new Release is created, deploy relevant
1+
# When a new release is created, deploy relevant
22
# files to each of the generated repos.
3-
name: Deploy Framework
3+
name: Deploy Distributable Repos
44

55
on:
66
release:
77
types: [published]
88

99
jobs:
10+
check-version:
11+
name: Check for updated version
12+
runs-on: ubuntu-22.04
13+
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v3
17+
with:
18+
fetch-depth: 0 # fetch all tags
19+
20+
- name: Get latest version
21+
run: |
22+
echo 'LATEST_VERSION<<EOF' >> $GITHUB_ENV
23+
echo $(git describe --tags --abbrev=0) | sed "s/v//" >> $GITHUB_ENV
24+
echo 'EOF' >> $GITHUB_ENV
25+
26+
- name: Search for updated version
27+
if: ${{ env.LATEST_VERSION }}
28+
run: |
29+
chmod +x ${GITHUB_WORKSPACE}/.github/scripts/validate-version
30+
${GITHUB_WORKSPACE}/.github/scripts/validate-version ${{ env.LATEST_VERSION }}
31+
1032
framework:
1133
name: Deploy to framework
1234
if: github.repository == 'codeigniter4/CodeIgniter4'
13-
runs-on: ubuntu-latest
35+
runs-on: ubuntu-22.04
36+
needs: check-version
37+
1438
steps:
1539
- name: Identify
1640
run: |
@@ -55,7 +79,9 @@ jobs:
5579
appstarter:
5680
name: Deploy to appstarter
5781
if: github.repository == 'codeigniter4/CodeIgniter4'
58-
runs-on: ubuntu-latest
82+
runs-on: ubuntu-22.04
83+
needs: check-version
84+
5985
steps:
6086
- name: Identify
6187
run: |
@@ -96,3 +122,56 @@ jobs:
96122
name: release.data.name,
97123
body: release.data.body
98124
})
125+
126+
userguide:
127+
name: Deploy to userguide
128+
if: github.repository == 'codeigniter4/CodeIgniter4'
129+
runs-on: ubuntu-22.04
130+
needs: check-version
131+
132+
steps:
133+
- name: Identify
134+
run: |
135+
git config --global user.email "[email protected]"
136+
git config --global user.name "${GITHUB_ACTOR}"
137+
138+
- name: Checkout source
139+
uses: actions/checkout@v3
140+
with:
141+
path: source
142+
143+
- name: Checkout target
144+
uses: actions/checkout@v3
145+
with:
146+
repository: codeigniter4/userguide
147+
token: ${{ secrets.ACCESS_TOKEN }}
148+
path: userguide
149+
150+
- name: Install Sphinx
151+
run: |
152+
sudo apt install python3-sphinx
153+
sudo pip3 install sphinxcontrib-phpdomain
154+
sudo pip3 install sphinx_rtd_theme
155+
156+
- name: Chmod
157+
run: chmod +x ./source/.github/scripts/deploy-userguide
158+
159+
- name: Deploy
160+
run: ./source/.github/scripts/deploy-userguide ${GITHUB_WORKSPACE}/source ${GITHUB_WORKSPACE}/userguide ${GITHUB_REF##*/}
161+
162+
- name: Release
163+
uses: actions/github-script@v6
164+
with:
165+
github-token: ${{secrets.ACCESS_TOKEN}}
166+
script: |
167+
const release = await github.rest.repos.getLatestRelease({
168+
owner: context.repo.owner,
169+
repo: context.repo.repo
170+
})
171+
github.rest.repos.createRelease({
172+
owner: context.repo.owner,
173+
repo: 'userguide',
174+
tag_name: release.data.tag_name,
175+
name: release.data.name,
176+
body: release.data.body
177+
})

.github/workflows/deploy-userguide.yml

Lines changed: 0 additions & 59 deletions
This file was deleted.

admin/RELEASE.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,15 @@ CodeIgniter 4.x.x release.
6060
6161
See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
6262
```
63-
* Watch for the "Deploy Framework" Action to make sure **framework** and **appstarter** get updated
64-
* Run the following commands to install and test AppStarter and verify the new version:
63+
* Watch for the "Deploy Distributable Repos" action to make sure **framework**, **appstarter**, and **userguide** get updated
64+
* Run the following commands to install and test `appstarter` and verify the new version:
6565
```console
6666
composer create-project codeigniter4/appstarter release-test
6767
cd release-test
6868
composer test && composer info codeigniter4/framework
6969
```
70-
* Verify that the User Guide Actions succeeded:
71-
* "Deploy User Guide", framework repo
70+
* Verify that the user guide actions succeeded:
71+
* "Deploy Distributable Repos", framework repo
7272
* "Deploy Production", UG repo
7373
* "pages-build-deployment", both repos
7474
* Fast-forward `develop` branch to catch the merge commit from `master`

0 commit comments

Comments
 (0)