This action is for uploading application files to DeployGate. For more details, please refer to the following documentation: https://docs.deploygate.com/docs/api/application/upload
Set up and use in your workflow file as follows:
name: Deploy to DeployGate Example
on:
pull_request:
branches:
- main
types: [opened, synchronize]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Upload to DeployGate
uses: DeployGate/[email protected]
with:
api_token: ${{ secrets.DEPLOYGATE_API_TOKEN }}
owner_name: ${{ secrets.DEPLOYGATE_OWNER_NAME }}
file_path: /path/to/app_file
message: "message example"
This action follows Semantic Versioning. Version numbers are structured as MAJOR.MINOR.PATCH:
- MAJOR version changes indicate incompatible API changes
- MINOR version changes add functionality in a backwards compatible manner
- PATCH version changes include backwards compatible bug fixes
When using this action, we recommend using the full version number (e.g., @1.0.1
) rather than a major or minor version number (e.g., @v1
or @v1.0
). This ensures:
- Consistent behavior in your workflows
- Protection against unexpected breaking changes
- Easier tracking of version-specific issues
Example:
- uses: DeployGate/[email protected]
Parameter | Required | Description |
---|---|---|
api_token |
✅ | DeployGate API token (Recommended to use GitHub Secrets) |
owner_name |
✅ | User name or Organization name (Recommended to use GitHub Secrets) |
file_path |
✅ | App's binary file path (IPA/APK/AAB) |
message |
❌ | Description of uploaded file |
distribution_key |
❌ | Distribution page's hash |
distribution_name |
❌ | Distribution page's name |
release_note |
❌ | Message displayed during distribution page app updates |
disable_notify |
❌ | (iOS only) Disable Push notification emails |
Output | Description |
---|---|
results |
DeployGate API response results |
MIT License
- Fork this repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add some amazing feature'
) - Push the branch (
git push origin feature/amazing-feature
) - Create a pull request
This action uses Dependabot to keep dependencies up to date. Security updates are applied automatically.
- name: Upload to DeployGate
uses: DeployGate/[email protected]
with:
api_token: ${{ secrets.DEPLOYGATE_API_TOKEN }}
owner_name: ${{ secrets.DEPLOYGATE_OWNER_NAME }}
file_path: /path/to/app_file
message: "message example"
- name: Upload to DeployGate
id: deploygate
uses: DeployGate/[email protected]
with:
api_token: ${{ secrets.DEPLOYGATE_API_TOKEN }}
owner_name: ${{ secrets.DEPLOYGATE_OWNER_NAME }}
file_path: /path/to/app_file
- name: Use Upload Results
run: |
# Access the entire results object
echo "Full results: ${{ steps.deploygate.outputs.results }}"
# Access specific values using fromJSON
echo "App name: ${{ fromJSON(steps.deploygate.outputs.results).name }}"
echo "Package name: ${{ fromJSON(steps.deploygate.outputs.results).package_name }}"
echo "Download URL: ${{ fromJSON(steps.deploygate.outputs.results).file }}"
name: Build and Deploy iOS App
on:
pull_request:
branches: [ main ]
types: [opened, synchronize]
jobs:
build-and-upload:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Build iOS App
run: |
xcodebuild -workspace YourApp.xcworkspace \
-scheme YourScheme \
-configuration Debug \
-archivePath $RUNNER_TEMP/YourApp.xcarchive \
clean archive
xcodebuild -exportArchive \
-archivePath $RUNNER_TEMP/YourApp.xcarchive \
-exportOptionsPlist exportOptions.plist \
-exportPath $RUNNER_TEMP/export
- name: Upload to DeployGate
id: deploygate
uses: DeployGate/[email protected]
with:
api_token: ${{ secrets.DEPLOYGATE_API_TOKEN }}
owner_name: ${{ secrets.DEPLOYGATE_OWNER_NAME }}
file_path: ${{ runner.temp }}/export/YourApp.ipa
message: "PR #${{ github.event.pull_request.number }}"
distribution_name: "PR #${github.event.pull_request.number}"
name: Build and Deploy Android App (AAB)
on:
pull_request:
branches: [ main ]
types: [opened, synchronize]
jobs:
build-and-upload:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Build Release Bundle
run: ./gradlew bundleRelease
- name: Upload AAB to DeployGate
id: deploygate
uses: DeployGate/[email protected]
with:
api_token: ${{ secrets.DEPLOYGATE_API_TOKEN }}
owner_name: ${{ secrets.DEPLOYGATE_OWNER_NAME }}
file_path: app/build/outputs/bundle/release/app-release.aab
message: "PR #${{ github.event.pull_request.number }} - ${{ github.event.pull_request.title }}"
distribution_name: "PR #${github.event.pull_request.number}"
release_note: |
Branch: ${{ github.head_ref }}
Commit: ${{ github.sha }}
name: Build and Deploy Android App (APK)
on:
pull_request:
branches: [ main ]
types: [opened, synchronize]
jobs:
build-and-upload:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Build Release APK
run: ./gradlew assembleRelease
- name: Upload APK to DeployGate
id: deploygate
uses: DeployGate/[email protected]
with:
api_token: ${{ secrets.DEPLOYGATE_API_TOKEN }}
owner_name: ${{ secrets.DEPLOYGATE_OWNER_NAME }}
file_path: app/build/outputs/apk/release/app-release.apk
message: "PR #${{ github.event.pull_request.number }} - ${{ github.event.pull_request.title }}"
distribution_name: "PR #${github.event.pull_request.number}"
release_note: |
Branch: ${{ github.head_ref }}
Commit: ${{ github.sha }}
The results
output contains the following structure:
{
"name": "App Name",
"package_name": "com.example.app",
"os_name": "android or ios",
"path": "/path/to/app",
"revision": 1,
"version_code": "1",
"version_name": "1.0.1",
"sdk_version": 30,
"target_sdk_version": "30",
"message": "Upload message",
"file": "https://deploygate.com/path/to/file",
"icon": "https://deploygate.com/path/to/icon",
"user": {
"name": "username",
}
}
You can access these values in your workflow using the fromJSON
function as shown in the examples above.