Deploy EC-CUBE2 #204
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
name: Deploy EC-CUBE2 | |
on: | |
schedule: | |
# 水曜日の 00:00 (JST) に処理を実行する | |
# UTC の 15:00 は JST だと翌日の 00:00 | |
- cron: '0 15 * * 2' | |
release: | |
types: [ published ] | |
jobs: | |
deploy: | |
name: Deploy | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: PREVIOUS_TAG_NAME | |
run: | | |
echo "PREVIOUS_TAG_NAME=$(curl -sS -H 'Accept: application/vnd.github.v3+json' https://api.github.com/repos/${{ github.repository }}/releases/latest | jq -r .tag_name)" >> $GITHUB_ENV | |
- if: github.event_name == 'schedule' | |
run: | | |
echo "LATEST_PRERELEASE_TAG_NAME=$(curl -sS -H 'Accept: application/vnd.github.v3+json' https://api.github.com/repos/${{ github.repository }}/releases | jq -r 'map(select(.prerelease)) | first | .tag_name')" >> $GITHUB_ENV | |
- if: github.event_name == 'schedule' | |
run: | | |
echo "LATEST_PRERELEASE_REV=$(curl -sS -H 'Accept: application/vnd.github.v3+json' https://api.github.com/repos/${{ github.repository }}/git/refs/tags/${{ env.LATEST_PRERELEASE_TAG_NAME }} | jq -r '.object.sha')" >> $GITHUB_ENV | |
- if: github.event_name == 'schedule' | |
run: | | |
echo "LATEST_MASTER_REV=$(curl -sS -H 'Accept: application/vnd.github.v3+json' https://api.github.com/repos/${{ github.repository }}/git/refs/heads/master | jq -r '.object.sha')" >> $GITHUB_ENV | |
- if: (github.event_name == 'schedule' && env.LATEST_MASTER_REV != env.LATEST_PRERELEASE_REV) || github.event_name == 'release' | |
run: echo "DEPLOY=1" >> $GITHUB_ENV | |
- name: TAG_NAME for schedule | |
if: github.event_name == 'schedule' | |
run: echo "TAG_NAME=eccube2-weekly-$(date +%Y%m%d)" >> $GITHUB_ENV | |
- name: TAG_NAME for release | |
if: github.event_name == 'release' | |
env: | |
TAG_NAME: ${{ github.event.release.tag_name }} | |
run: echo "TAG_NAME=${TAG_NAME}" >> $GITHUB_ENV | |
- name: Create Release | |
if: github.event_name == 'schedule' && env.DEPLOY == 1 | |
uses: ncipollo/release-action@v1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
tag: ${{ env.TAG_NAME }} | |
name: ${{ env.TAG_NAME }} | |
body: | | |
EC-CUBE 2.17系の Weekly build🚀 です。毎週の改善内容を反映しております。 | |
常に安定して動作するよう努めていますが、思わぬ不具合を取り込んでしまっている場合もあります。十分に検証の上ご利用ください。 | |
<table> | |
<thead><tr><th>File</th><th>Checksum(sha256)</th></tr></thead> | |
<tbody> | |
<tr><td><a href="https://github.com/${{ github.repository }}/releases/download/${{ env.TAG_NAME }}/${{ env.TAG_NAME }}.tar.gz">${{ env.TAG_NAME }}.tar.gz</a></td><td><a href="https://github.com/${{ github.repository }}/releases/download/${{ env.TAG_NAME }}/${{ env.TAG_NAME }}.tar.gz.checksum.sha256">${{ env.TAG_NAME }}.tar.gz.checksum.sha256</a></td></tr> | |
<tr><td><a href="https://github.com/${{ github.repository }}/releases/download/${{ env.TAG_NAME }}/${{ env.TAG_NAME }}.zip">${{ env.TAG_NAME }}.zip</a></td><td><a href="https://github.com/${{ github.repository }}/releases/download/${{ env.TAG_NAME }}/${{ env.TAG_NAME }}.zip.checksum.sha256">${{ env.TAG_NAME }}.zip.checksum.sha256</a></td></tr> | |
</tbody> | |
</table> | |
prerelease: true | |
- name: RELEASE_BODY | |
if: github.event_name == 'schedule' && env.DEPLOY == 1 | |
env: | |
TAG_NAME: ${{ env.TAG_NAME }} | |
run: | | |
echo 'RELEASE_BODY<<EOF' >> $GITHUB_ENV | |
echo $(curl -sS -H 'Accept: application/vnd.github.v3+json' https://api.github.com/repos/${{ github.repository }}/releases/tags/${{ env.TAG_NAME }} | jq -r .body | sed 's,",\\",g' | sed "s,',,g") >> $GITHUB_ENV | |
echo 'EOF' >> $GITHUB_ENV | |
- name: RELEASE_ID | |
if: github.event_name == 'schedule' && env.DEPLOY == 1 | |
env: | |
TAG_NAME: ${{ env.TAG_NAME }} | |
run: | | |
echo "RELEASE_ID=$(curl -sS -H 'Accept: application/vnd.github.v3+json' https://api.github.com/repos/${{ github.repository }}/releases/tags/${{ env.TAG_NAME }} | jq -r .id)" >> $GITHUB_ENV | |
- name: GENERATED_NOTES | |
if: github.event_name == 'schedule' && env.DEPLOY == 1 | |
run: | | |
echo 'GENERATED_NOTES<<EOF' >> $GITHUB_ENV | |
echo $(curl -sS -X POST -H 'Accept: application/vnd.github.v3+json' -H 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' https://api.github.com/repos/${{ github.repository }}/releases/generate-notes -d '{"tag_name":"${{ env.TAG_NAME }}", "previous_tag_name":"${{ env.PREVIOUS_TAG_NAME }}"}' | jq .body | sed 's,",,g' | sed "s,',,g") >> $GITHUB_ENV | |
echo 'EOF' >> $GITHUB_ENV | |
- name: Checkout code | |
if: github.event_name == 'release' && (github.event.action == 'published' || github.event.action == 'prereleased' ) | |
uses: actions/checkout@v4 | |
- name: Checkout code | |
if: github.event_name == 'schedule' && env.DEPLOY == 1 | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ env.TAG_NAME }} | |
- name: Install to Composer | |
if: env.DEPLOY == 1 | |
run: composer install --no-scripts --no-dev --no-interaction --optimize-autoloader | |
- name: Dump GitHub context | |
env: | |
GITHUB_CONTEXT: ${{ toJson(github) }} | |
run: echo "$GITHUB_CONTEXT" | |
- name: Dump job context | |
env: | |
JOB_CONTEXT: ${{ toJson(job) }} | |
run: echo "$JOB_CONTEXT" | |
- name: Dump steps context | |
env: | |
STEPS_CONTEXT: ${{ toJson(steps) }} | |
run: echo "$STEPS_CONTEXT" | |
- name: Dump runner context | |
env: | |
RUNNER_CONTEXT: ${{ toJson(runner) }} | |
run: echo "$RUNNER_CONTEXT" | |
- name: Dump strategy context | |
env: | |
STRATEGY_CONTEXT: ${{ toJson(strategy) }} | |
run: echo "$STRATEGY_CONTEXT" | |
- name: Dump matrix context | |
env: | |
MATRIX_CONTEXT: ${{ toJson(matrix) }} | |
run: echo "$MATRIX_CONTEXT" | |
- name: Packaging | |
if: env.DEPLOY == 1 | |
working-directory: ../ | |
env: | |
TAG_NAME: ${{ env.TAG_NAME }} | |
REPOSITORY_NAME: ${{ github.repository }} | |
run: | | |
echo $TAG_NAME | |
echo "remove obsolete files..." | |
rm -rf $GITHUB_WORKSPACE/.git | |
rm -rf $GITHUB_WORKSPACE/.gitignore | |
rm -rf $GITHUB_WORKSPACE/.github | |
rm -rf $GITHUB_WORKSPACE/.editorconfig | |
rm -rf $GITHUB_WORKSPACE/.php_cs.dist | |
rm -rf $GITHUB_WORKSPACE/phpunit.xml.dist | |
rm -rf $GITHUB_WORKSPACE/phpstan.neon.dist | |
rm -rf $GITHUB_WORKSPACE/build.xml | |
rm -rf $GITHUB_WORKSPACE/README.md | |
rm -rf $GITHUB_WORKSPACE/php.ini | |
rm -rf $GITHUB_WORKSPACE/phpinicopy.sh | |
rm -rf $GITHUB_WORKSPACE/phpinidel.sh | |
rm -rf $GITHUB_WORKSPACE/*.phar | |
rm -rf $GITHUB_WORKSPACE/setup.sh | |
rm -rf $GITHUB_WORKSPACE/svn_propset.sh | |
rm -rf $GITHUB_WORKSPACE/playwright* | |
rm -rf $GITHUB_WORKSPACE/e2e-tests | |
rm -rf $GITHUB_WORKSPACE/tests | |
rm -rf $GITHUB_WORKSPACE/templates | |
rm -rf $GITHUB_WORKSPACE/patches | |
rm -rf $GITHUB_WORKSPACE/docs | |
rm -rf $GITHUB_WORKSPACE/html/test | |
rm -rf $GITHUB_WORKSPACE/dockerbuild | |
rm -rf $GITHUB_WORKSPACE/Dockerfile | |
rm -rf $GITHUB_WORKSPACE/docker-compose*.yml | |
rm -rf $GITHUB_WORKSPACE/zap | |
find $GITHUB_WORKSPACE -name "dummy" -print0 | xargs -0 rm -rf | |
find $GITHUB_WORKSPACE -name ".git*" -and ! -name ".gitkeep" -print0 | xargs -0 rm -rf | |
find $GITHUB_WORKSPACE -name ".git*" -type d -print0 | xargs -0 rm -rf | |
echo "set permissions..." | |
chmod -R o+w $GITHUB_WORKSPACE/html/install/temp | |
chmod -R o+w $GITHUB_WORKSPACE/html/user_data | |
chmod -R o+w $GITHUB_WORKSPACE/html/upload | |
chmod -R o+w $GITHUB_WORKSPACE/data/cache | |
chmod -R o+w $GITHUB_WORKSPACE/data/downloads | |
chmod -R o+w $GITHUB_WORKSPACE/data/Smarty | |
chmod -R o+w $GITHUB_WORKSPACE/data/class | |
chmod -R o+w $GITHUB_WORKSPACE/data/logs | |
chmod -R o+w $GITHUB_WORKSPACE/data/upload | |
chmod -R o+w $GITHUB_WORKSPACE/data/config | |
chmod o+w $GITHUB_WORKSPACE/html | |
echo "complession files..." | |
pwd | |
ls -al | |
tar czfp $TAG_NAME.tar.gz ec-cube2 | |
zip -ry $TAG_NAME.zip ec-cube2 1> /dev/null | |
md5sum $TAG_NAME.tar.gz | awk '{ print $1 }' > $TAG_NAME.tar.gz.checksum.md5 | |
md5sum $TAG_NAME.zip | awk '{ print $1 }' > $TAG_NAME.zip.checksum.md5 | |
sha1sum $TAG_NAME.tar.gz | awk '{ print $1 }' > $TAG_NAME.tar.gz.checksum.sha1 | |
sha1sum $TAG_NAME.zip | awk '{ print $1 }' > $TAG_NAME.zip.checksum.sha1 | |
sha256sum $TAG_NAME.tar.gz | awk '{ print $1 }' > $TAG_NAME.tar.gz.checksum.sha256 | |
sha256sum $TAG_NAME.zip | awk '{ print $1 }' > $TAG_NAME.zip.checksum.sha256 | |
echo "TGZ_SHA256=$(cat $TAG_NAME.tar.gz.checksum.sha256)" >> $GITHUB_ENV | |
echo "ZIP_SHA256=$(cat $TAG_NAME.zip.checksum.sha256)" >> $GITHUB_ENV | |
- name: Upload binaries to release of TGZ | |
if: env.DEPLOY == 1 | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ runner.workspace }}/${{ env.TAG_NAME }}.tar.gz | |
asset_name: ${{ env.TAG_NAME }}.tar.gz | |
tag: ${{ env.TAG_NAME }} | |
overwrite: true | |
- name: Upload binaries to release of ZIP | |
if: env.DEPLOY == 1 | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ runner.workspace }}/${{ env.TAG_NAME }}.zip | |
asset_name: ${{ env.TAG_NAME }}.zip | |
tag: ${{ env.TAG_NAME }} | |
overwrite: true | |
- name: Upload binaries to release of TGZ md5 checksum | |
if: env.DEPLOY == 1 | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ runner.workspace }}/${{ env.TAG_NAME }}.tar.gz.checksum.md5 | |
asset_name: ${{ env.TAG_NAME }}.tar.gz.checksum.md5 | |
tag: ${{ env.TAG_NAME }} | |
overwrite: true | |
- name: Upload binaries to release of TGZ sha1 checksum | |
if: env.DEPLOY == 1 | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ runner.workspace }}/${{ env.TAG_NAME }}.tar.gz.checksum.sha1 | |
asset_name: ${{ env.TAG_NAME }}.tar.gz.checksum.sha1 | |
tag: ${{ env.TAG_NAME }} | |
overwrite: true | |
- name: Upload binaries to release of TGZ sha256 checksum | |
if: env.DEPLOY == 1 | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ runner.workspace }}/${{ env.TAG_NAME }}.tar.gz.checksum.sha256 | |
asset_name: ${{ env.TAG_NAME }}.tar.gz.checksum.sha256 | |
tag: ${{ env.TAG_NAME }} | |
overwrite: true | |
- name: Upload binaries to release of ZIP md5 checksum | |
if: env.DEPLOY == 1 | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ runner.workspace }}/${{ env.TAG_NAME }}.zip.checksum.md5 | |
asset_name: ${{ env.TAG_NAME }}.zip.checksum.md5 | |
tag: ${{ env.TAG_NAME }} | |
overwrite: true | |
- name: Upload binaries to release of ZIP sha1 checksum | |
if: env.DEPLOY == 1 | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ runner.workspace }}/${{ env.TAG_NAME }}.zip.checksum.sha1 | |
asset_name: ${{ env.TAG_NAME }}.zip.checksum.sha1 | |
tag: ${{ env.TAG_NAME }} | |
overwrite: true | |
- name: Upload binaries to release of ZIP sha256 checksum | |
if: env.DEPLOY == 1 | |
uses: svenstaro/[email protected] | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: ${{ runner.workspace }}/${{ env.TAG_NAME }}.zip.checksum.sha256 | |
asset_name: ${{ env.TAG_NAME }}.zip.checksum.sha256 | |
tag: ${{ env.TAG_NAME }} | |
overwrite: true | |
- name: Update Release notes | |
if: github.event_name == 'schedule' && env.DEPLOY == 1 | |
run: | | |
curl -sS \ | |
-X PATCH \ | |
-H "Accept: application/vnd.github.v3+json" \ | |
-H "authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ | |
https://api.github.com/repos/${{ github.repository }}/releases/${{ env.RELEASE_ID }} \ | |
-d '{"draft":false, "body":"${{ env.RELEASE_BODY }}\n${{ env.GENERATED_NOTES }}"}' |