Skip to content

generate-all

generate-all #4033

Workflow file for this run

name: generate-all
on:
schedule:
- cron: '15 */4 * * *'
push:
branches:
- 'develop'
- 'feature/**'
- 'chore/**'
- 'bugfix/**'
- 'story/**'
workflow_dispatch:
jobs:
prerequisite:
name: Prerequisite for Generation
if: github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/heads/feature')
runs-on: ubuntu-20.04
steps:
- name: Prerequisite
run: |
echo Prerequisites passed!
generate-bmcapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/bmc/download_spec
package-name: pnap_bmc_api
generate-ranchersolutionapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/rancher/download_spec
package-name: pnap_rancher_solution_api
generate-networkapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/networks/download_spec
package-name: pnap_network_api
generate-ipapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/ips/download_spec
package-name: pnap_ip_api
generate-auditapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/bmc-audit/download_spec
package-name: pnap_audit_api
generate-tagapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/tags/download_spec
package-name: pnap_tag_api
generate-networkstorageapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/network-storage/download_spec
package-name: pnap_network_storage_api
generate-locationapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/bmc-location/download_spec
package-name: pnap_location_api
generate-invoicingapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/invoicing/download_spec
package-name: pnap_invoicing_api
generate-paymentsapi:
needs: prerequisite
uses: ./.github/workflows/_generate.yml
with:
spec-link: https://developers.phoenixnap.com/portals/api/sites/phoenixnap-prod-developerportal/liveportal/apis/payments/download_spec
package-name: pnap_payments_api
# Push generated code
push-changes:
name: Push Changes
runs-on: ubuntu-20.04
needs:
- generate-bmcapi
- generate-ranchersolutionapi
- generate-networkapi
- generate-ipapi
- generate-auditapi
- generate-tagapi
- generate-networkstorageapi
- generate-locationapi
- generate-invoicingapi
- generate-paymentsapi
outputs:
CHANGES_FOUND: ${{ steps.commit-step.outputs.CHANGES_FOUND }}
steps:
- name: Check out the repo
uses: actions/checkout@v3
# 2nd part of cleanup.
# Checking out the repository will include all the dirty files as well,
# so here we need to delete the existing modules and keep only the artifacts
# that were generated.
- name: Clean up modules
run: |
rm -rf ./pnap_audit_api \
./pnap_bmc_api \
./pnap_ip_api \
./pnap_location_api \
./pnap_network_api \
./pnap_network_storage_api \
./pnap_rancher_solution_api \
./pnap_tag_api \
./pnap_payment_api \
./pnap_invoice_api
- name: Download Artifacts
uses: actions/download-artifact@v3
- name: Move spec files
run: |
find . -type f -name "*.spec.yaml" -not -path "./specs/*" -print0 | xargs -0 mv -ft ./specs/
- id: commit-step
name: Add and Commit files
run: |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --local user.name "github-actions[bot]"
git add -A
# Uses git status to check whether changes are present.
if test "$(git status --porcelain=v1 2>/dev/null | wc -l)" -gt "0" ;
then
git commit -m "Add changes";
echo "CHANGES_FOUND=true" >> "$GITHUB_OUTPUT";
else
echo No changes found;
fi
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}
validate-all:
if: ${{ needs.push-changes.outputs.CHANGES_FOUND }}
needs:
- push-changes
uses: ./.github/workflows/validate-all.yml