This repository contains GitHub Actions to build Apps for ctrlX OS and ctrlX CORE from Bosch Rexroth.
You can use these actions in your repositories workflows to easily create an automated CI/CD pipeline. There are multiple actions that support you in different task (e.g. building, cross-compiling for ARM64, validation of json files, ...).
The examples below show how to use the different actions in your GitHub Workflow.
Build a snap for amd64 architecture (e.g. for ctrlX CORE X7 or ctrlX COREvirtual).
name: build ctrlX Snap (amd64)
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Build the Snap
id: build-snap
uses: boschrexroth/ctrlx-actions/build-snap@v1
with:
architecture: amd64 # required ('amd64' or 'arm64')
-
name: Release
uses: softprops/action-gh-release@v1
with:
tag_name: v0.0.1
files: ${{steps.build-snap.outputs.path-snap}}
Build a snap for arm64 architecture (e.g. for ctrlX CORE X3).
name: build ctrlX Snap (arm64)
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Build the Snap
id: build-snap
uses: boschrexroth/ctrlx-actions/build-snap@v1
with:
architecture: arm64 # required ('amd64' or 'arm64')
-
name: Release
uses: softprops/action-gh-release@v1
with:
tag_name: v0.0.1
files: ${{steps.build-snap.outputs.path-snap}}
Name | Required | Type | Description |
---|---|---|---|
architecture |
true |
String | Snap architecture ('amd64' or 'arm64') |
path-app-files |
false |
String | Path to the app files & snap/snapcraft.yaml (default: $GITHUB_WORKSPACE) |
Name | Type | Description |
---|---|---|
path-snap |
String | Absolute path to the built snap |
Build an App for ctrlX. A .app
file ("App") is a package archive which combines multiple snaps for different architectures (arm64, amd64). It may also contain additional files, like digital signatures. By packaging all in a single file, it enables a simple distribution of an App for ctrlX OS.
name: build ctrlX Snaps and package as App
on: push
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
-
name: Build snap for amd64
id: amd64-build
uses: boschrexroth/ctrlx-actions/build-snap@v1
with:
architecture: amd64
-
name: Build snap for arm64
id: arm64-build
uses: boschrexroth/ctrlx-actions/build-snap@v1
with:
architecture: arm64
-
name: Package App for ctrlX OS
id: app-build
uses: boschrexroth/ctrlx-actions/build-app@v1
with:
path-amd64-snap: ${{steps.amd64-build.outputs.path-snap}}
path-arm64-snap: ${{steps.arm64-build.outputs.path-snap}}
-
name: Release
uses: softprops/action-gh-release@v1
with:
tag_name: v0.0.1
files: ${{steps.app-build.outputs.path-app}}
Name | Required | Type | Description |
---|---|---|---|
path-amd64-snap |
false |
String | Path to the amd64 snap file (default: '*amd64.snap') |
path-arm64-snap |
false |
String | Path to the arm64 snap file (default: '*arm64.snap') |
path-app-files |
false |
String | Path to the app files & snap/snapcraft.yaml (default: $GITHUB_WORKSPACE) |
app-name |
false |
String | Name of the .app file (default: name of repository) |
Name | Type | Description |
---|---|---|
path-app |
String | Absolute path to the built app |
Validate JSON for ctrlX specific schemas. .json
files are used at multiple occasions when creating an App for ctrlX. Use this action to validate those json files against corresponding json-schema which are provided by Bosch Rexroth. See: https://github.com/boschrexroth/json-schema
name: validate JSON schema
on: push
jobs:
validate:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
-
name: Validate JSON
uses: boschrexroth/ctrlx-actions/validate-json-schema@v1
with:
json-file: file.json # path to json file
Name | Required | Type | Description |
---|---|---|---|
json-schema |
false |
String | Path to json schema (default: package-manifest.v1.1.schema.json ) |
json-file |
true |
String | Path to json file |
ajv-options |
false |
String | ajv options to parse (default: --spec=draft2020 --strict=false --all-errors ) |
The content (e.g. source code and related documents) of this repository is intended to be used for configuration, parameterization, programming or diagnostics in combination with selected Bosch Rexroth ctrlX AUTOMATION devices. Additionally, the specifications given in the "Areas of Use and Application" for ctrlX AUTOMATION devices used with the content of this repository do also apply.
Any use of the source code and related documents of this repository in applications other than those specified above or under operating conditions other than those described in the documentation and the technical specifications is considered as "unintended". Furthermore, this software must not be used in any application areas not expressly approved by Bosch Rexroth.
Copyright © 2022 Bosch Rexroth AG. All rights reserved.
Bosch Rexroth AG
Bgm.-Dr.-Nebel-Str. 2
97816 Lohr am Main
GERMANY
MIT License
Copyright (c) 2022 Bosch Rexroth AG
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.