diff --git a/.github/workflows/apidocs-action.yml b/.github/workflows/apidocs-action.yml new file mode 100644 index 0000000000..c533df2639 --- /dev/null +++ b/.github/workflows/apidocs-action.yml @@ -0,0 +1,69 @@ +name: API Documentation + +on: + push: + branches: + - 'develop' + +jobs: + + build: + name: Generate API Docs + if: (github.repository == 'codeigniter4/CodeIgniter4') + runs-on: ubuntu-latest + + steps: + - name: Setup credentials + run: | + git config --global user.email "action@github.com" + git config --global user.name "${GITHUB_ACTOR}" + + - name: Checkout source + uses: actions/checkout@v2 + with: + path: source + + - name: Checkout api + uses: actions/checkout@v2 + with: + repository: codeigniter4/api + token: ${{ secrets.ACCESS_TOKEN }} + path: api + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: '7.2' + extensions: intl, json, mbstring, mysqlnd, xdebug, xml, sqlite3 + coverage: xdebug + + - name: Download GraphViz for phpDocumentor + run: | + sudo apt-get install -yq graphviz + + - name: Download phpDocumentor + run: | + curl \ + -L https://github.com/phpDocumentor/phpDocumentor/releases/download/v2.9.1/phpDocumentor.phar \ + -o admin/phpDocumentor.phar + + - name: Prepare API + run: | + cd ./api + rm -rf ./api/docs* + mkdir -p ./api/docs + git reset --hard master + + - name: Make the new API docs + run: | + cd ./source + chmod +x admin/phpDocumentor.phar + admin/phpDocumentor.phar + cp -R ${GITHUB_WORKSPACE}/source/api/build/* ${GITHUB_WORKSPACE}/api/docs + + - name: Deploy API + run: | + cd ./api + git add . + git commit -m "API sync for ${GITHUB_SHA}" + git push diff --git a/admin/apibot b/admin/apibot index 75a0eb27b2..08b451a04b 100755 --- a/admin/apibot +++ b/admin/apibot @@ -18,7 +18,7 @@ mkdir -p build/api/docs cd build/api git init git remote add origin $UPSTREAM -git fetch +git fetch git checkout master git reset --hard origin/master rm -r docs/* @@ -39,4 +39,4 @@ if [ $1 = "deploy" ]; then git add . git commit -S -m "APIbot synching" git push -f origin master -fi \ No newline at end of file +fi