Skip to content
This repository has been archived by the owner on Jun 22, 2022. It is now read-only.

Commit

Permalink
Merge aab7e6b into f397790
Browse files Browse the repository at this point in the history
  • Loading branch information
technote-space committed Jul 7, 2019
2 parents f397790 + aab7e6b commit 71161af
Show file tree
Hide file tree
Showing 105 changed files with 693 additions and 334 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ id_rsa
id_rsa.pub
data.zip

!tests/bin/**/*.sh
!tests/bin/*.sh
/coverage
/vendor
/travis-ci
/gh-pages

/.coveralls.yml
/phpcs.xml
Expand Down
35 changes: 24 additions & 11 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,14 @@ stages:
if: tag IS present

before_install:
- openssl aes-256-cbc -K $encrypted_fea3c3191547_key -iv $encrypted_fea3c3191547_iv -in ./id_rsa.enc -out ~/.ssh/id_rsa -d 2>/dev/null
- chmod 600 ~/.ssh/id_rsa
- echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
- git config --global user.email "technote.space@gmail.com"
- git config --global user.name "Technote"
- git config --global url."git@github.com:".insteadOf "https://github.com/"
- git clone --depth=1 https://github.com/wp-content-framework/travis-ci.git travis-ci
- bash travis-ci/bin/prepare.sh install
- if [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Update" ]] || [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Deploy" ]]; then openssl aes-256-cbc -K $encrypted_fea3c3191547_key -iv $encrypted_fea3c3191547_iv -in ./id_rsa.enc -out ~/.ssh/id_rsa -d 2>/dev/null; fi
- if [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Update" ]] || [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Deploy" ]]; then chmod 600 ~/.ssh/id_rsa; fi
- if [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Update" ]] || [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Deploy" ]]; then echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config; fi
- if [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Update" ]] || [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Deploy" ]]; then git config --global user.email "technote.space@gmail.com"; fi
- if [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Update" ]] || [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Deploy" ]]; then git config --global user.name "Technote"; fi
- if [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Update" ]] || [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Deploy" ]]; then git config --global url."git@github.com:".insteadOf "https://github.com/"; fi
- if [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Check" ]] || [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Test" ]]; then git clone --depth=1 https://github.com/wp-content-framework/travis-ci.git travis-ci; fi
- if [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Check" ]] || [[ "${TRAVIS_BUILD_STAGE_NAME}" == "Test" ]]; then bash travis-ci/bin/prepare.sh install; fi

jobs:
fast_finish: true
Expand All @@ -53,6 +53,7 @@ jobs:
php: '7.2'
script: bash travis-ci/bin/php/phpmd.sh


- stage: test
language: php
php: '7.3'
Expand Down Expand Up @@ -111,14 +112,15 @@ jobs:
node_js: '11'
script: bash bin/update.sh


- stage: deploy
language: node_js
node_js: '11'
dist: trusty
script: skip
before_deploy:
- source bin/deploy/env.sh
- bash bin/deploy.sh
- bash bin/deploy/create-zip.sh
deploy:
provider: releases
skip_cleanup: true
Expand All @@ -127,13 +129,24 @@ jobs:
api_key:
secure: ij6EEfS2oV3dnH8ylMaV3AWUnwqQRFAYL6HeC5+EGYjh/EoB6+cTOVfjX5qrTpRzIz1PdsKQaws5DET26uRDVQIGiySL1RaTZ9zoiCe1uwllZ3gXtHaiiEL5oZSz4bjpww1kqbXANGUOlz9Mnkk+9c0ogtpiBSfIVhMshGN2OKwNDPdgwE27aW3d1ccUHpgs52b5lD01B53hZUxtoiyEcoIBGYSL5xLOVNh626j0ViNhlkjQEAS7STV5LSRVDwXEYZB6nsR8nag59BSOf5y33TYCiGFdlkV3H+3xki/Lgrw+ZY0urCcM9s2J7lkxMqnkXKV64sWUmORsY+6ZyskAbO4RFMFQgtxWPuJyy8kSGIpW2yJxztHMNvPbPzG9x+8IAh1yWuX9dgV2Y8CVq4hi36M8Qk5+CWX3xooYIXU/NiKX8niMSWmmzj2cWlq3KO3UGy8/dsTBzOwLliHR2CkPMDvbDJC/s+BeBQ3dOpT3cEMCkV7ceS0AuXL4LXtreB99VYmOguOtlK5XzmDr6EwCMg99hr5okBQljN+hJIxJj2axRCn8rGm2Y5Do2/ogcQ46gmpKVRb21xXuSHloYYgPIdHZUbebtdRSXyHGqohV7jpsuJ3odNUdXigujnOI2NMdlw9aLN773h+ROgxw6mterz8NDs03KlTvcPeVcxjOCe8=
file:
- ${RELEASE_FILE1}
- ${RELEASE_FILE2}
- ${RELEASE_FILE}
body: ${RELEASE_BODY}
overwrite: true
on:
tags: true

- stage: deploy
language: node_js
node_js: '11'
dist: trusty
script: skip
deploy:
provider: script
skip_cleanup: true
script: bin/deploy/gh-pages.sh
on:
tags: true

allow_failures:
- env: WP_VERSION=4.9
- env: WP_VERSION=3.9
Expand Down
126 changes: 108 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@

This repository manages versions of Gutenberg.

```bash
composer require technote/gutenberg-package-versions
```

## Data
- `versions.json`
- array of `tag` => `packages`
### Versions
* `data/gutenberg-versions.json`
* `data/wp-versions.json`
#### Detail
- array of (`tag` => `packages`)
- `packages`
- `wp-<package>` => `version`
- array of (`wp-<package>` => `version`)
#### Example
```
{
"v3.3.0": {
Expand Down Expand Up @@ -57,26 +57,116 @@ composer require technote/gutenberg-package-versions
"wp-viewport": "2.4.0",
"wp-wordcount": "2.3.0"
}
...
}
```
### Each Tag's Versions
* `data/gutenberg/<TAG>.json`
* `data/wordpress/<TAG>.json`
#### Contents
- `packages`
- `wp-<package>` => `version`
#### Example
```
{
"wp-a11y": "2.0.0",
"wp-api-fetch": "2.0.0",
"wp-autop": "2.0.0",
"wp-blob": "2.0.0",
"wp-block-library": "2.0.0",
"wp-block-serialization-default-parser": "1.0.0-rc.0",
"wp-block-serialization-spec-parser": "1.0.1",
"wp-blocks": "3.0.0",
"wp-components": "3.0.0",
"wp-compose": "2.0.0",
"wp-core-data": "2.0.0",
"wp-data": "2.0.0",
"wp-date": "2.0.0",
"wp-deprecated": "2.0.0",
"wp-dom-ready": "2.0.0",
"wp-dom": "2.0.0",
"wp-editor": "3.0.0",
"wp-element": "2.0.0",
"wp-hooks": "2.0.0",
"wp-html-entities": "2.0.0",
"wp-i18n": "2.0.0",
"wp-is-shallow-equal": "1.1.4",
"wp-keycodes": "2.0.0",
"wp-nux": "2.0.0",
"wp-plugins": "2.0.0",
"wp-redux-routine": "2.0.0",
"wp-shortcode": "2.0.0",
"wp-token-list": "1.0.0",
"wp-url": "2.0.0",
"wp-viewport": "2.0.0",
"wp-wordcount": "2.0.0"
}
```
- `data/<TAG>.json`
- `packages`
- `wp-<package>` => `version`

## Helper
## Usage
### API
#### Endpoints
- for Gutenberg
- Tags
- https://api.wp-framework.dev/api/v1/gutenberg/tags.json
- Versions
- https://api.wp-framework.dev/api/v1/gutenberg/versions.json
- Each tag
- https://api.wp-framework.dev/api/v1/gutenberg/tags/${tag}.json
- e.g.
- https://api.wp-framework.dev/api/v1/gutenberg/tags/3.3.0.json
- https://api.wp-framework.dev/api/v1/gutenberg/tags/5.1.1.json
- https://api.wp-framework.dev/api/v1/gutenberg/tags/5.2.0.json
- for WP Core
- Tags
- https://api.wp-framework.dev/api/v1/wp-core/tags.json
- Versions
- https://api.wp-framework.dev/api/v1/wp-core/versions.json
- Each tag
- https://api.wp-framework.dev/api/v1/wp-core/tags/${tag}.json
- e.g.
- https://api.wp-framework.dev/api/v1/wp-core/tags/5.0.0.json
- https://api.wp-framework.dev/api/v1/wp-core/tags/5.1.1.json
- https://api.wp-framework.dev/api/v1/wp-core/tags/5.2.0.json
### composer
```bash
composer require technote/gutenberg-package-versions
```
#### Helper
```php
<?php

use Technote\GutenbergPackageVersion;
use Technote\GutenbergPackageVersionProvider;

// for Gutenberg
$provider = new GutenbergPackageVersionProvider();

$provider->get_tags(); // tags

$provider->get_versions(); // array of (tag => packages)
$provider->get_versions( '5.2.0' ); // array of (package => version)

$provider->get_package_version( '5.1.0', 'wp-block-editor' ); // false
$provider->get_package_version( '5.2.0', 'wp-block-editor' ); // 1.0.0-alpha.0

$provider->package_exists( '5.1.0', 'wp-block-editor' ); // false
$provider->package_exists( '5.2.0', 'wp-block-editor' ); // true

// for WP Core
$provider = new GutenbergPackageVersionProvider( 'wp' );

$provider->get_tags(); // tags

( new GutenbergPackageVersion() )->get_packages(); // array of (tag => packages)
( new GutenbergPackageVersion() )->get_packages( 'v5.2.0' ); // array of (package => version)
$provider->get_versions(); // array of (tag => packages)
$provider->get_versions( '5.2.0' ); // array of (package => version)

( new GutenbergPackageVersion() )->get_package_version( 'v5.1.0', 'wp-block-editor' ); // false
( new GutenbergPackageVersion() )->get_package_version( 'v5.2.0', 'wp-block-editor' ); // 1.0.0-alpha.0
$provider->get_package_version( '5.1.0', 'wp-block-editor' ); // false
$provider->get_package_version( '5.2.0', 'wp-block-editor' ); // 2.0.1

( new GutenbergPackageVersion() )->package_exists( 'v5.1.0', 'wp-block-editor' ); // false
( new GutenbergPackageVersion() )->package_exists( 'v5.2.0', 'wp-block-editor' ); // true
$provider->package_exists( '5.1.0', 'wp-block-editor' ); // false
$provider->package_exists( '5.2.0', 'wp-block-editor' ); // true
```

## Author
Expand Down
8 changes: 0 additions & 8 deletions bin/deploy.sh

This file was deleted.

6 changes: 3 additions & 3 deletions bin/deploy/create-zip.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ current=$(cd $(dirname $0);
pwd)
source ${current}/../variables.sh

pushd ${VERSION_DIR}
pushd ${DATA_DIR}
echo ""
echo ">> Create zip file."
zip -9 -qr ${TRAVIS_BUILD_DIR}/${RELEASE_FILE1} .
zip -9 -qr ${TRAVIS_BUILD_DIR}/${RELEASE_FILE} .
pushd

ls -la ${RELEASE_FILE1}
ls -la ${RELEASE_FILE}
3 changes: 1 addition & 2 deletions bin/deploy/env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ if [[ -z "${TRAVIS_BUILD_DIR}" ]]; then
exit 1
fi

export RELEASE_FILE1=data.zip
export RELEASE_FILE2=versions.json
export RELEASE_FILE=data.zip
export RELEASE_TITLE=${TRAVIS_TAG}
export RELEASE_TAG=${TRAVIS_TAG}
export RELEASE_BODY="Auto updated (Travis build: ${TRAVIS_BUILD_WEB_URL})"
47 changes: 47 additions & 0 deletions bin/deploy/gh-pages.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#!/usr/bin/env bash

set -e

current=$(cd $(dirname $0);
pwd)
source ${current}/../variables.sh

if [[ ! -d ${DATA_DIR} ]]; then
echo "Data not found"
exit 1
fi

echo ""
echo ">> Clone gh-pages"
git clone -b gh-pages "https://github.com/${TRAVIS_REPO_SLUG}.git" ${GH_PAGES_DIR}

echo ""
echo ">> Prepare files"
mkdir -p ${GH_PAGES_DIR}/${GH_PAGES_API_ROOT}/${GH_PAGES_API_VERSION}
rm -f ${GH_PAGES_DIR}/README.md
rm -f ${GH_PAGES_DIR}/CNAME
rsync -a --checksum --delete ${DATA_DIR}/ ${GH_PAGES_DIR}/${GH_PAGES_API_ROOT}/${GH_PAGES_API_VERSION}/
cp ${TRAVIS_BUILD_DIR}/README.md ${GH_PAGES_DIR}/
echo ${GH_PAGES_CNAME} > ${GH_PAGES_DIR}/CNAME

echo ""
echo ">> Check diff"
if [[ -z "$(git -C ${GH_PAGES_DIR} status --short)" ]]; then
echo "There is no diff"
exit
fi

if [[ -z "${CI}" ]]; then
echo "Prevent commit if local"
exit
fi

echo ""
echo ">> Commit"
git -C ${GH_PAGES_DIR} add --all
git -C ${GH_PAGES_DIR} status --short
git -C ${GH_PAGES_DIR} commit -m "${COMMIT_MESSAGE}"

echo ""
echo ">> Push"
git -C ${TRAVIS_BUILD_DIR} push origin gh-pages
19 changes: 16 additions & 3 deletions bin/update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,21 @@ set -e

current=$(cd $(dirname $0);
pwd)
source ${current}/variables.sh

mkdir -p ${WORK_DIR}/tags
mkdir -p ${DATA_DIR}

bash ${current}/update/prepare.sh ${GUTENBERG_VARIABLE_PREFIX}&
bash ${current}/update/prepare.sh ${WP_VARIABLE_PREFIX}&
wait

bash ${current}/update/get.sh ${GUTENBERG_VARIABLE_PREFIX}&
bash ${current}/update/get.sh ${WP_VARIABLE_PREFIX}&
wait

bash ${current}/update/processing.sh ${GUTENBERG_VARIABLE_PREFIX}&
bash ${current}/update/processing.sh ${WP_VARIABLE_PREFIX}&
wait

bash ${current}/update/prepare.sh
bash ${current}/update/get.sh
bash ${current}/update/processing.sh
bash ${current}/update/commit.sh
20 changes: 10 additions & 10 deletions bin/update/commit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,28 @@ current=$(cd $(dirname $0);
pwd)
source ${current}/../variables.sh

if [[ ! -d ${VERSION_DIR} ]]; then
echo "versions are empty"
if [[ ! -d ${DATA_DIR} ]]; then
echo "Data not found"
exit 1
fi

if [[ -z "${CI}" ]]; then
echo "Prevent commit if local"
exit
fi

echo ""
echo ">> Check diff"
git -C ${TRAVIS_BUILD_DIR} checkout master
if [[ -z "$(git -C ${TRAVIS_BUILD_DIR} status --short ${TRAVIS_BUILD_DIR}/data)" ]] && [[ -z "$(git -C ${TRAVIS_BUILD_DIR} status --short ${TRAVIS_BUILD_DIR}/${VERSION_FILE})" ]]; then
if [[ -z "$(git -C ${TRAVIS_BUILD_DIR} status --short ${DATA_DIR})" ]]; then
echo "There is no diff"
exit
fi

echo ""
echo ">> Commit"
if [[ -z "${CI}" ]]; then
echo "Prevent commit if local"
exit
fi
git -C ${TRAVIS_BUILD_DIR} add ${TRAVIS_BUILD_DIR}/data
git -C ${TRAVIS_BUILD_DIR} add ${TRAVIS_BUILD_DIR}/${VERSION_FILE}
git -C ${TRAVIS_BUILD_DIR} status
git -C ${TRAVIS_BUILD_DIR} add ${DATA_DIR}
git -C ${TRAVIS_BUILD_DIR} status --short
git -C ${TRAVIS_BUILD_DIR} commit -m "${COMMIT_MESSAGE}"

echo ""
Expand Down

0 comments on commit 71161af

Please sign in to comment.