GitHub Actions
Docs¶
The GitHub Actions docs
is defined in the pushDocs.yml
file.
The content of the docs is in the docs
folder and the config file is mkdocs.yml
.
In an Ubuntu environment, the workflow will set up Python and install mkdocs-material
and mkdocs-minify-plugin
.
With mkdocs gh-deploy --force
, the docs site will be pushed to the gh-docs
branch and then published with GitHub Pages to https://docs.spreadsheet-importer.com/.
wdi5¶
With wdi5, it is possible to test an E2E Scenaro with UI5 automatically in GitHub Actions.
In order to cover as many scenarios as possible, this workflow will cover as many scenarios as possible.
To avoid writing a separate configuration and workflow for each scenario, we use the matrix function of GitHub Actions. This means that we only have to define the workflow once, and it is executed as often as necessary.
The workflow is defined in the wdi5-test.yml
file.
The following steps are currently executed in a Ubuntu environment with matrix:
- Update Chrome in Ubuntu to the latest version.
- Checkout the
ui5-cc-spreadsheetimporter
repo. - Install
pnpm
. - Install Node 16.
- Get the port of the current scenario App (i.e., for
ordersv4fe
, the port is 8080).- With the port, we can check if the app is running.
- Run
pnpm i
. - Build
ui5-cc-spreadsheetimporter
. - Start CAP Server (for all scenarios the same).
-
Start the Scenario App
- For example, the matrix variables in
start:silent&
are used like:
pnpm --filter ${{ matrix.scenario }}${{ matrix.ui5version }} start:silent&
which can be:
pnpm --filter ordersv4fe108 start
10. Start wdi5 Testsa. First check if the server and app are running.
b. Start wdi5 test
headless
for the current scenario.c. So
pnpm --filter ui5-cc-spreadsheetimporter-sample test -- -- --headless ${{ matrix.scenario }} ${{ matrix.ui5version }}
will be
pnpm --filter ui5-cc-spreadsheetimporter-sample test -- -- ordersv4fe 108
- For example, the matrix variables in
Start wdi5 Tests¶
Because we use only one wdio-base.conf.js
, we must and can only test this one scenario with the names of the scenario.
We can pass parameters there when we call the test with "test": "wdio run ./test/wdio-base.conf.js"
.
So in GitHub, it will be called with pnpm --filter ui5-cc-spreadsheetimporter-sample test -- -- ordersv4fe 108
.
With these parameters, we can assign the appropriate port and spec files in the wdio-base.conf.js
and read them from testapps.json
.
We try to ensure that all spec files apply to all scenarios, but certain ones can only be tested with OData V4, for example.
Release Please Action¶
For automatic versioning and changelog generation, we use release-please-action, which allows everything to be done with GitHub Actions.
This workflow is defined in release-please.yml.
This workflow will create a Pull Request if a fix:
or feat:
commit is pushed to the main
branch.
This Pull Request contains all changes, like the updated version and Changelog.
In addition, scripts run to change the version in other files.
In this commit, you can see which files are updated with these scripts.
For example, in ui5.yaml
and the sample apps.
After this Pull Request is merged, the ui5-cc-spreadsheetimporter
will be built and published to npm automatically.