Deploy Distributable Repos #13
Workflow file for this run
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
# When a new release is created, deploy relevant | |
# files to each of the generated repos. | |
name: Deploy Distributable Repos | |
on: | |
release: | |
types: [published] | |
permissions: | |
contents: read | |
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 | |
permissions: | |
# Allow actions/github-script to create release | |
contents: write | |
if: github.repository == 'codeigniter4/CodeIgniter4' | |
runs-on: ubuntu-22.04 | |
needs: check-version | |
steps: | |
- name: Identify | |
run: | | |
git config --global user.email "[email protected]" | |
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/framework | |
token: ${{ secrets.ACCESS_TOKEN }} | |
path: framework | |
- name: Chmod | |
run: chmod +x ./source/.github/scripts/deploy-framework | |
- name: Deploy | |
run: ./source/.github/scripts/deploy-framework ${GITHUB_WORKSPACE}/source ${GITHUB_WORKSPACE}/framework ${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: 'framework', | |
tag_name: release.data.tag_name, | |
name: release.data.name, | |
body: release.data.body | |
}) | |
appstarter: | |
name: Deploy to appstarter | |
permissions: | |
# Allow actions/github-script to create release | |
contents: write | |
if: github.repository == 'codeigniter4/CodeIgniter4' | |
runs-on: ubuntu-22.04 | |
needs: check-version | |
steps: | |
- name: Identify | |
run: | | |
git config --global user.email "[email protected]" | |
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/appstarter | |
token: ${{ secrets.ACCESS_TOKEN }} | |
path: appstarter | |
- name: Chmod | |
run: chmod +x ./source/.github/scripts/deploy-appstarter | |
- name: Deploy | |
run: ./source/.github/scripts/deploy-appstarter ${GITHUB_WORKSPACE}/source ${GITHUB_WORKSPACE}/appstarter ${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: 'appstarter', | |
tag_name: release.data.tag_name, | |
name: release.data.name, | |
body: release.data.body | |
}) | |
userguide: | |
name: Deploy to userguide | |
permissions: | |
# Allow actions/github-script to create release | |
contents: write | |
if: github.repository == 'codeigniter4/CodeIgniter4' | |
runs-on: ubuntu-22.04 | |
needs: check-version | |
steps: | |
- name: Identify | |
run: | | |
git config --global user.email "[email protected]" | |
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 | |
}) |