mirror of
https://github.com/codeigniter4/CodeIgniter4.git
synced 2025-02-20 11:44:28 +08:00
Merge pull request #6802 from paulbalandan/check-version
Add a check for updated version before deployment
This commit is contained in:
commit
30fd4826c2
21
.github/scripts/validate-version
vendored
Normal file
21
.github/scripts/validate-version
vendored
Normal file
@ -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""
|
@ -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
|
||||
|
||||
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: |
|
||||
@ -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: |
|
||||
@ -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
.github/workflows/deploy-userguide.yml
vendored
59
.github/workflows/deploy-userguide.yml
vendored
@ -1,59 +0,0 @@
|
||||
# When a new Release is created, deploy relevant
|
||||
# files to each of the generated repos.
|
||||
name: Deploy User Guide
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [published]
|
||||
|
||||
jobs:
|
||||
framework:
|
||||
name: Deploy to userguide
|
||||
if: (github.repository == 'codeigniter4/CodeIgniter4')
|
||||
runs-on: ubuntu-latest
|
||||
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
|
||||
})
|
@ -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`
|
||||
|
Loading…
x
Reference in New Issue
Block a user