Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
55 changes: 55 additions & 0 deletions .github/workflows/validate-airgap-support.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Validate airgapSupport

on:
pull_request:
branches:
- develop
- master
- 'release/**'

permissions:
contents: read

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Check airgapSupport in every component.yaml
shell: python3 {0}
run: |
import os, re, sys

FORMAT = re.compile(r"^airgapSupport: (true|false)[ \t]*$")
errors, checked = [], 0

for root, dirs, files in os.walk("."):
dirs[:] = sorted(d for d in dirs if d != ".git")
for name in sorted(files):
if name not in ("component.yaml", "component.yml"):
continue
path = os.path.relpath(os.path.join(root, name), ".")
parts = path.split(os.sep)
if len(parts) != 3 or name != "component.yaml":
errors.append((path, "must be at <type>/<version>/component.yaml"))
continue
checked += 1
try:
text = open(path, "rb").read().decode("utf-8-sig")
except UnicodeDecodeError:
errors.append((path, "not valid UTF-8"))
continue
lines = [l for l in text.splitlines() if l.startswith("airgapSupport:")]
if len(lines) != 1:
errors.append((path, f"expected exactly one 'airgapSupport:' line, found {len(lines)}"))
elif not FORMAT.match(lines[0]):
errors.append((path, f"expected 'airgapSupport: true' or 'airgapSupport: false', found {lines[0]!r}"))

if checked == 0:
errors.append((None, "no <type>/<version>/component.yaml found"))
for path, message in errors:
print(f"::error file={path}::{path}: {message}" if path else f"::error::{message}")
if errors:
sys.exit(f"{len(errors)} problem(s) in {checked} component.yaml file(s)")
print(f"OK: {checked} component.yaml file(s) declare airgapSupport")
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,19 @@ You can find more information about the workflows and how to use a specific comp
## Contribution
You can create a new component by following the format in the currently available samples, which consist of a YAML file accompanied by a source repository.

## Air-gap support (`airgapSupport`)
Every `<component>/<version>/component.yaml` declares whether the workflow step can run in an air-gapped self-hosted installation, as a top-level line:

```yaml
platform: Common
airgapSupport: true
```

- `true`: the step runs in an air-gapped installation. It may run offline, use only internal services, go through the customer's artifact proxy, or take an input that points it to an internal service.
- `false`: the step needs public SaaS or internet by design, or it needs a code change before it can run air-gapped.

The field is required. The `Validate airgapSupport` GitHub Actions check fails on a pull request when a `component.yaml` has no `airgapSupport: true|false` line, has more than one, or is not at `<component>/<version>/component.yaml`. It blocks the merge once it is set as a required status check. When you add a new component version, set the field in the same pull request. Background: BE-9509.

## Reporting an Issue / Reaching Us
If you encounter any issues related with a component in this repository, you can raise an issue here.

Expand Down
1 change: 1 addition & 0 deletions appcircle_activate_ssh_key/1.0.0/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: true
buildPlatform:
displayName: Activate SSH Private Key
description: "Activate SSH private key in RSA format."
Expand Down
1 change: 1 addition & 0 deletions appcircle_activate_ssh_key/1.0.1/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: true
buildPlatform:
displayName: Activate SSH Private Key
description: "Activate SSH private key in RSA format."
Expand Down
1 change: 1 addition & 0 deletions appcircle_activate_ssh_key/1.0.2/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: true
buildPlatform:
displayName: Activate SSH Private Key
description: "This step sets up your SSH key in the build machine if you used one to connect your repository. This allows the build machine to connect to your private repository using your SSH key."
Expand Down
1 change: 1 addition & 0 deletions appcircle_amazon_s3_upload/1.0.0/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: false
buildPlatform:
displayName: Upload Files to Amazon S3
description: "Upload a file to Amazon S3."
Expand Down
1 change: 1 addition & 0 deletions appcircle_amazon_s3_upload/1.0.1/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: false
buildPlatform:
displayName: Upload Files to Amazon S3
description: "Upload a file to Amazon S3."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform:
displayName: "App Center Android Distribute"
description: "Distribute APK, AAB, and mapping files to App Center."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform:
displayName: "App Center Android Distribute"
description: "Distribute APK, AAB, and mapping files to App Center."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform: ReactNative, JavaKotlin
displayName: "App Center Android Distribute"
description: "Distribute APK, AAB, and mapping files to App Center."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_appdome/1.0.0/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform:
displayName: Appdome Build-2Secure for Android
description: "Integration that allows activating security and app protection features, building and signing mobile apps using Appdome's API"
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_appdome/1.0.1/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform:
displayName: Appdome Build-2Secure for Android
description: "Integration that allows activating security and app protection features, building and signing mobile apps using Appdome's API"
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_appdome/1.0.2/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform:
displayName: Appdome Build-2Secure for Android
description: "Integration that allows activating security and app protection features, building and signing mobile apps using Appdome's API."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_appdome/1.0.3/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform: ReactNative, JavaKotlin
displayName: Appdome Build-2Secure for Android
description: "Integration that allows activating security and app protection features, building and signing mobile apps using Appdome's API."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_appdome/1.0.4/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform: ReactNative, JavaKotlin
displayName: Appdome Build-2Secure for Android
description: "Integration that allows activating security and app protection features, building and signing mobile apps using Appdome's API."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_appdome/1.0.5/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform: ReactNative, JavaKotlin
displayName: Appdome Build-2Secure for Android
description: "Integration that allows activating security and app protection features, building and signing mobile apps using Appdome's API."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: false
buildPlatform:
displayName: AWS Device Farm Deploy and Run
description: "Deploy a file to AWS Device Farm and run tests."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: false
buildPlatform:
displayName: AWS Device Farm Deploy and Run
description: "Deploy a file to AWS Device Farm and run tests."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform:
displayName: AWS Device Farm Deploy and Run
description: "Deploy a file to AWS Device Farm and run tests."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform:
displayName: Azure DevOps Bot for Detekt Report
description: "Bot script that allows Detekt outputs to make changes to Azure DevOps Pull Requests."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform:
displayName: Azure DevOps Bot for Detekt Report
description: "Bot script that allows Detekt outputs to make changes to Azure DevOps Pull Requests."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_badge/1.0.0/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: true
buildPlatform:
displayName: Add badge onto your app icon
description: "Install Imagemagick and add badge onto your icons."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_badge/1.0.1/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: true
buildPlatform:
displayName: Add badge onto your app icon
description: "Install Imagemagick and add badge onto your icons."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_badge/1.0.2/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin
displayName: Add Badge onto Your App Icon for Android
description: "Install Imagemagick and add badge onto your icons."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_badge/1.0.3/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin
displayName: Add Badge onto Your App Icon for Android
description: "Install Imagemagick and add badge onto your icons."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_badge/1.0.4/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin
displayName: Add Badge onto Your App Icon for Android
description: "Install Imagemagick and add badge onto your icons."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_badge/1.0.5/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin
displayName: Add Badge onto Your App Icon for Android
description: "Install Imagemagick and add badge onto your icons."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_build/1.0.0/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin, Smartface
displayName: "Android Build"
description: "Build your application for the architectures specified in your project. This step creates an unsigned apk or aab file."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_build/1.0.1/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin, Smartface
displayName: "Android Build"
description: "Build your application for the architectures specified in your project. This step creates an unsigned apk or aab file."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_build/1.0.2/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin, Smartface
displayName: "Android Build"
description: "Build your application for the architectures specified in your project. This step creates an unsigned apk or aab file."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_build_ui_test/1.0.0/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin, Flutter
displayName: "Android Build for UI Testing"
description: "Build your test applications with gradlew(./gradlew assembleDebug assembleAndroidTest)."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_build_ui_test/1.0.1/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin, Flutter
displayName: "Android Build for UI Testing"
description: "Build your test applications with gradlew(./gradlew assembleDebug assembleAndroidTest)."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_build_ui_test/1.0.2/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin, Flutter
displayName: "Android Build for UI Testing"
description: "Build your test applications with gradlew(./gradlew assembleDebug assembleAndroidTest)."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform:
displayName: Increment Build and Version Number
description: 'Increment Build and Version Number for Android'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin
displayName: Increment Build and Version Number
description: 'Increment Build and Version Number for Android'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin
displayName: Increment Build and Version Number
description: 'Increment Build and Version Number for Android'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin
displayName: Increment Build and Version Number
description: 'Increment Build and Version Number for Android'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin
displayName: Increment Build and Version Number
description: 'Increment Build and Version Number for Android'
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_datatheorem/1.0.0/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: false
buildPlatform:
displayName: Data Theorem Mobile Secure
description: "Scan your app using Mobile Secure"
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_datatheorem/1.0.1/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform: ReactNative, JavaKotlin
displayName: Data Theorem Mobile Secure for Android
description: "Scan your app using Mobile Secure"
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_dependency_report/1.0.0/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform:
displayName: Android Dependency Report
description: "Rendering the dependency report."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_dependency_report/1.0.1/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform:
displayName: Android Dependency Report
description: "Rendering the dependency report."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_filesize/1.0.0/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: true
buildPlatform:
displayName: File size check
description: "Checks the file size of build artifacts."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_filesize/1.0.1/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: true
buildPlatform: ReactNative, JavaKotlin
displayName: File Size Check for Android
description: "Checks the file size of build artifacts."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: false
buildPlatform:
displayName: Firebase App Distribution
description: "Distribute your builds via Firebase App Distribution"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Common
airgapSupport: false
buildPlatform:
displayName: Firebase App Distribution
description: "Distribute your builds via Firebase App Distribution"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform: ReactNative, JavaKotlin
displayName: Firebase App Distribution for Android
description: "Distribute your builds via Firebase App Distribution"
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_firebase_test_lab/1.0.0/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform: ReactNative, JavaKotlin, Flutter
displayName: Firebase Test Lab for Android
description: "Run Firebase Test Lab tests."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_firebase_test_lab/1.0.1/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform: ReactNative, JavaKotlin, Flutter
displayName: Firebase Test Lab for Android
description: "Run Firebase Test Lab tests."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform:
displayName: "App Center Android Distribute"
description: "Distribute APK, AAB, and mapping files to App Center."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform:
displayName: "App Center Android Distribute"
description: "Distribute APK, AAB, and mapping files to App Center."
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform: Flutter
displayName: "App Center Android Distribute"
description: "Distribute APK, AAB, and mapping files to App Center."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_flutter_appdome/1.0.0/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform:
displayName: Appdome Build-2Secure for Android
description: "Integration that allows activating security and app protection features, building and signing mobile apps using Appdome's API"
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_flutter_appdome/1.0.1/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform:
displayName: Appdome Build-2Secure for Android
description: "Integration that allows activating security and app protection features, building and signing mobile apps using Appdome's API"
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_flutter_appdome/1.0.2/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform:
displayName: Appdome Build-2Secure for Android
description: "Integration that allows activating security and app protection features, building and signing mobile apps using Appdome's API."
Expand Down
1 change: 1 addition & 0 deletions appcircle_android_flutter_appdome/1.0.3/component.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
platform: Android
airgapSupport: false
buildPlatform: Flutter
displayName: Appdome Build-2Secure for Android
description: "Integration that allows activating security and app protection features, building and signing mobile apps using Appdome's API."
Expand Down
Loading
Loading