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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .github/actions/setup-tools/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: 'Setup Tools'
description: 'Setup tools needed in repo'

runs:
using: 'composite'
steps:
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 25
- name: Install dependencies root
shell: bash
run: npm ci
- name: Install dependencies plugin
working-directory: ./packages/cordova-plugin
shell: bash
run: npm ci
- name: Install dependencies for outsystems-wrapper
working-directory: ./packages/outsystems-wrapper
shell: bash
run: npm ci
9 changes: 9 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: "Continuous Integrations"

on:
pull_request:
types: [opened, synchronize, reopened]

jobs:
ci:
uses: ./.github/workflows/reusable_ci.yml
29 changes: 29 additions & 0 deletions .github/workflows/release_plugin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Release Cordova Plugin (GitHub)

on:
workflow_dispatch:

permissions:
contents: write

jobs:
ci:
uses: ./.github/workflows/reusable_ci.yml
secrets:
THE_GH_RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN_GITHUB }}

release:
needs: ['ci']
runs-on: 'ubuntu-latest'
timeout-minutes: 20
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.RELEASE_TOKEN_GITHUB }}
- name: 'Setup Tools'
uses: ./.github/actions/setup-tools
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN_GITHUB }}
run: npx semantic-release
64 changes: 64 additions & 0 deletions .github/workflows/reusable_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: (re-usable) Continuous Integration Checks

on:
workflow_call:
secrets:
THE_GH_RELEASE_TOKEN:
required: false

jobs:
build-plugin:
runs-on: 'ubuntu-latest'
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.THE_GH_RELEASE_TOKEN || github.token }}

- name: 'Setup Tools'
uses: ./.github/actions/setup-tools

- name: 'Copy README.md with plugin API'
working-directory: ./packages/cordova-plugin
run: cp README.md README.md.original

- name: 'Build Packages'
working-directory: ./packages/cordova-plugin
run: npm run build

- name: 'Check README.md changes'
working-directory: ./packages/cordova-plugin
run: |
if ! cmp --silent README.md README.md.original; then
echo "Detected README.md changes; Do 'npm run build' in 'packages/cordova-plugin' to update the docs."
exit 1
fi

build-outsystems-wrapper:
runs-on: 'ubuntu-latest'
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.THE_GH_RELEASE_TOKEN || github.token }}

- name: 'Setup Tools'
uses: ./.github/actions/setup-tools

- name: 'Copy existing generated JS file'
working-directory: ./packages/outsystems-wrapper
run: cp dist/outsystems.js outsystems.js.original

- name: 'Build OutSystems JS Wrapper'
working-directory: ./packages/outsystems-wrapper
run: npm run build

- name: 'Check generated JS file changes'
working-directory: ./packages/outsystems-wrapper
run: |
if ! cmp --silent dist/outsystems.js outsystems.js.original; then
echo "Detected dist/outsystems.js changes; Do 'npm run build' in 'packages/outsystems-wrapper' to update the generated JS files."
exit 1
fi
28 changes: 28 additions & 0 deletions .github/workflows/validate_pr_title.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: "Validate PR title for Conventional Commits Format"

on:
pull_request:
types: [opened, edited, synchronize, reopened]

jobs:
validate-pr-title-conventional:
runs-on: ubuntu-latest
steps:
- name: Check PR title for conventional commits
uses: actions/github-script@v6
with:
github-token: ${{ github.token }}
script: |
const prTitle = context.payload.pull_request.title;

// Conventional commits regex: type(scope?): description
const conventionalRegex = /^(feat|fix|chore|docs|style|refactor|perf|test|ci)(\([a-z0-9\-]+\))?: .+/;

if (!conventionalRegex.test(prTitle)) {
core.setFailed(
`PR title "${prTitle}" is not in conventional commit format.\n` +
`Example: "feat(android): add new validation function"`
);
} else {
console.log(`PR title "${prTitle}" follows conventional commit format`);
}
6 changes: 0 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.1]

### 2026-04-27
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@
<a href="https://github.com/ionic-team/ion-ios-camera">🍏 iOS Library</a>
</p>
<p align="center">
<a href="https://github.com/ionic-team/cordova-outsystems-geolocation/issues/new?labels=bug&template=bug-report---.md">🐛 Report Bug</a>
<a href="https://github.com/ionic-team/cordova-outsystems-camera/issues/new?labels=bug&template=bug-report---.md">🐛 Report Bug</a>
·
<a href="https://github.com/ionic-team/cordova-outsystems-geolocation/issues/new?labels=enhancement&template=feature-request---.md"> 💡 Request Feature</a>
<a href="https://github.com/ionic-team/cordova-outsystems-camera/issues/new?labels=enhancement&template=feature-request---.md"> 💡 Request Feature</a>
</p>
</div>

Expand Down
Loading
Loading