Skip to content

[MTM-59397] As a plugin developer I want to have a workflow that will collect shell versions and run cypress tests against them #43

[MTM-59397] As a plugin developer I want to have a workflow that will collect shell versions and run cypress tests against them

[MTM-59397] As a plugin developer I want to have a workflow that will collect shell versions and run cypress tests against them #43

name: Collect shell versions
on:
pull_request: # TODO: change workflow trigger
permissions:
contents: read
env:
ACTIONS_STEP_DEBUG: true
jobs:
collect-shell-versions:
timeout-minutes: 30
runs-on: ubuntu-22.04
name: Get shell versions by tags
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '16'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build:ci
- name: Upload build artifact
uses: actions/upload-artifact@v3
with:
name: build
if-no-files-found: error
retention-days: 5
path: |
dist/sag-pkg-community-plugins/**
- name: Copy files for http-server into apps subfolder
run: |
mkdir -p dist/apps/sag-pkg-community-plugins
cp -r dist/sag-pkg-community-plugins/* dist/apps/sag-pkg-community-plugins
- name: Get @c8y/ngx-components, non-deprecated dist versions
id: check-deprecated
run: npm run collect-shell-versions
- name: Use non-deprecated versions
run: |
echo "Non-deprecated Versions: ${{ steps.check-deprecated.outputs.non_deprecated_shell_versions }}"
# TODO: further should run in loop for each shell version
- name: Get shell app of particular version
run: |
set -e # Exit the script if any command fails
# Extract the 'next' tag version from the JSON
json='${{ steps.check-deprecated.outputs.non_deprecated_shell_versions }}'
next_version=$(echo $json | jq -r '.next')
echo "Version is: $next_version"
# Construct the file URL
file_url="http://resources.cumulocity.com/webapps/ui-releases/apps-${next_version}.tgz"
echo "File url is: $file_url"
# Download the file
echo "Downloading file..."
curl -O $file_url
if [ ! -f "apps-${next_version}.tgz" ]; then
echo "Downloaded file not found!"
exit 1
fi
echo "Downloaded file exists."
# Extract the downloaded tar.gz file
echo "Extracting downloaded file..."
tar -xzf "apps-${next_version}.tgz"
if [ $? -ne 0 ]; then
echo "Extraction failed!"
exit 1
fi
echo "File extracted successfully."
# Unzip Cockpit to dist/apps
cockpit_file="cockpit-${next_version}.zip"
destination_folder="dist/apps/cockpit-${next_version}"
mkdir -p "$destination_folder"
unzip -qq "$cockpit_file" -d "$destination_folder"
if [ $? -ne 0 ]; then
echo "Extracting cockpit file failed!"
exit 1
fi
echo "Cockpit file extracted successfully."
# Echo the elements of dist/apps
echo "Contents of dist/apps:"
ls dist/apps