Skip to content

Designer Catalog Generator #122

Designer Catalog Generator

Designer Catalog Generator #122

Workflow file for this run

# This workflow generates a new version of the catalog used by Nuxeo Studio Designer.
# Note: some Catalog dependencies require Node 10.x to work.
name: Designer Catalog Generator
on:
workflow_dispatch:
inputs:
target_platform:
description: 'The Nuxeo server target platform to build the catalog for.'
default: '2023.0'
required: true
branch_name:
description: 'The name of the Nuxeo Web UI branch to generate the catalog for.'
default: 'maintenance-3.1.x'
required: true
classifier:
description: 'Classifier to name a custom version of the catalog (used for testing purposes).'
default: ''
required: false
release:
types: [published]
env:
ARTIFACT_ID: view-designer-catalog
GROUP_ID: org.nuxeo.web.ui.studio
jobs:
catalog:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: git config --global user.name "nuxeo-webui-jx-bot" && git config --global user.email "[email protected]"
- uses: actions/setup-node@v3
with:
node-version: 14
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: '17'
- name: 'Update settings.xml with server configuration'
run: |
echo '<settings>
<mirrors>
<mirror>
<id>maven-internal</id>
<mirrorOf>external:*</mirrorOf>
<url>https://packages.nuxeo.com/repository/maven-internal/</url>
</mirror>
</mirrors>
<servers>
<server>
<id>nos-team</id>
<username>nuxeo-webui-jx-bot</username>
<password>${{ secrets.WEBUI_JX_BOT_GITHUB_ACTIONS_TOKEN }}</password>
</server>
<server>
<id>maven-internal</id>
<username>${{ secrets.PACKAGES_AUTH_USER }}</username>
<password>${{ secrets.PACKAGES_AUTH_TOKEN }}</password>
</server>
<server>
<id>maven-public-releases</id>
<username>${{ secrets.PACKAGES_AUTH_USER }}</username>
<password>${{ secrets.PACKAGES_AUTH_TOKEN }}</password>
</server>
<server>
<id>maven-public-snapshots</id>
<username>${{ secrets.PACKAGES_AUTH_USER }}</username>
<password>${{ secrets.PACKAGES_AUTH_TOKEN }}</password>
</server>
</servers>
</settings>' > ~/.m2/settings.xml
- name: Install libxml2-utils (xmllint)
run: sudo apt-get update && sudo apt-get install -y libxml2-utils
- name: Setup parameters (release)
if: github.event_name == 'release'
working-directory: packages/nuxeo-designer-catalog
run: |
echo "BRANCH_NAME=v${GITHUB_HEAD_REF##*/}" >> $GITHUB_ENV
echo "TARGET_PLATFORM=2023.0" >> $GITHUB_ENV
- name: Setup parameters (workflow_dispatch)
if: github.event_name == 'workflow_dispatch'
run: |
echo "BRANCH_NAME=${{ github.event.inputs.branch_name }}" >> $GITHUB_ENV
echo "TARGET_PLATFORM=${{ github.event.inputs.target_platform }}" >> $GITHUB_ENV
- name: Install dependencies
working-directory: packages/nuxeo-designer-catalog
run: |
npm install
npm install -g gulp
- name: Generate catalog
working-directory: packages/nuxeo-designer-catalog
run: |
gulp catalog --tp $TARGET_PLATFORM --webui-branch $BRANCH_NAME
gulp hints --tp $TARGET_PLATFORM
- name: Bundle the catalog
run: |
sudo chmod +r pom.xml
CATALOG_VERSION=$(xmllint --xpath "//*[local-name()='project']/*[local-name()='version']/text()" pom.xml)${{ github.event.inputs.classifier }}
pushd packages/nuxeo-designer-catalog/data/applications/nuxeo/${{ env.TARGET_PLATFORM }}
echo "CATALOG_VERSION=$CATALOG_VERSION" >> $GITHUB_ENV
CATALOG_NAME=$ARTIFACT_ID-$CATALOG_VERSION.zip
echo "CATALOG_NAME=$CATALOG_NAME" >> $GITHUB_ENV
zip -q -r $CATALOG_NAME nuxeo-web-ui data hints catalog.json
popd
- name: Archive catalog
uses: actions/upload-artifact@v3
with:
name: catalog
path: packages/nuxeo-designer-catalog/data/applications/nuxeo/${{ env.TARGET_PLATFORM }}/${{ env.CATALOG_NAME }}
- name: Upload catalog
working-directory: packages/nuxeo-designer-catalog
run: |
MVN_REPO_ID=maven-public-releases
MVN_REPO_URL=https://packages.nuxeo.com/repository/maven-public-releases/
if [[ $CATALOG_VERSION == *-SNAPSHOT ]]; then
MVN_REPO_ID=maven-public-snapshots
MVN_REPO_URL=https://packages.nuxeo.com/repository/maven-public-snapshots/
fi
pushd data/applications/nuxeo/$TARGET_PLATFORM
mvn deploy:deploy-file -Dfile=$CATALOG_NAME -DgroupId=$GROUP_ID -DartifactId=$ARTIFACT_ID -Dversion=$CATALOG_VERSION -Dpackaging=zip -DrepositoryId=$MVN_REPO_ID -Durl=$MVN_REPO_URL
popd
- name: Checkout NOS repository
uses: actions/checkout@v3
with:
repository: nuxeo/nos
token: ${{ secrets.WEBUI_JX_BOT_GITHUB_ACTIONS_TOKEN }}
path: nos
- name: Create pull request for catalog update in NOS
working-directory: nos
env:
GH_TOKEN: ${{ secrets.WEBUI_JX_BOT_GITHUB_ACTIONS_TOKEN }}
run: |
git checkout -b designer-catalog-update-$CATALOG_VERSION
mvn versions:set-property -Dproperty=view.designer.catalog.2023.0 -DnewVersion=$CATALOG_VERSION
git add .
git commit -m "Update Designer catalog with version $CATALOG_VERSION"
git push origin designer-catalog-update-$CATALOG_VERSION
gh pr create --base master --fill