Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build fixed and GitHub actions #592

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
51 changes: 51 additions & 0 deletions .github/workflows/build.yml
@@ -0,0 +1,51 @@
name: Build Android

on: [push, pull_request]

jobs:
build:
name: Build APK
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v2

- name: Setup java
uses: actions/setup-java@v1
with:
java-version: 1.11

- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: 14.x

- name: Install Cordova
run: npm install -g cordova

- name: Install yarn
run: npm install -g yarn

- name: Install app dependencies
run: yarn setup

- name: Configure the platform
run: yarn clean

- : Build Android dev apk
run: yarn build android paid dev

- name: Build Android prod aab
run: yarn build android paid prod

- name: Upload dev APK
uses: actions/upload-artifact@v3
with:
name: app-dev
path: ./*.apk

- name: Upload release bundle
uses: actions/upload-artifact@v3
with:
name: app-release
path: ./*.aab
3 changes: 2 additions & 1 deletion package.json
Expand Up @@ -10,6 +10,7 @@
"start": "sh utils/scripts/start.sh",
"start:debug": "sh utils/scripts/start.sh",
"clean": "sh utils/scripts/clean.sh",
"deepclean": "git clean -Xfd",
"plugin": "sh utils/scripts/plugin.sh",
"test": "jest",
"build-ace": "node ./utils/build-ace.js",
Expand All @@ -26,7 +27,7 @@
"cordova-plugin-vibration": {},
"cordova-plugin-buildinfo": {},
"cordova-plugin-device": {},
"cordova-plugin-server": {},
"cordova-plugin-webserver": {},
"cordova-plugin-file": {
"ANDROIDX_WEBKIT_VERSION": "1.4.0"
},
Expand Down
51 changes: 51 additions & 0 deletions utils/rename.js
@@ -0,0 +1,51 @@
const path = require('path');
const fs = require('fs');
const { promisify } = require('util');
const exec = promisify(require('child_process').exec);

(async () => {
const platformsDir = path.resolve(__dirname, '../platforms/');
const configpath = path.resolve(__dirname, '../config.xml');
const APK_PATH = platformsDir + "/android/app/build/outputs/apk/debug/app-debug.apk";
const AAB_PATH = platformsDir + "/android/app/build/outputs/bundle/release/app-release.aab";
const ID_PAID = 'com.foxdebug.acode';
const ID_FREE = 'com.foxdebug.acodefree';
const CONFIG_VERSION = /<widget.* version="([1-9.]+)"/;
const arg = process.argv[2];
const arg2 = process.argv[3];

try {
let config = fs.readFileSync(configpath, 'utf-8');
let platforms = fs.readdirSync(platformsDir);
let name, id, version, build, artifact, ext, target;

version = CONFIG_VERSION.exec(config)[1];

if (arg[0] === 'd') {
build = '_debug';
artifact = APK_PATH;
ext = '.apk';
} else if (arg[0] === 'p') {
build = '';
artifact = AAB_PATH;
ext = '.aab';
}

if (arg2 === 'free') {
id = ID_FREE;
} else {
id = ID_PAID;
}

name = '../' + id + '_' + version + build + ext;
target = path.resolve(__dirname, name);

console.log(artifact + " -> " + target);
fs.rename(artifact, target, () => {});

process.exit(0);
} catch (error) {
console.error(error);
process.exit(1);
}
})();
5 changes: 4 additions & 1 deletion utils/scripts/build.sh
Expand Up @@ -34,6 +34,7 @@ script1="node ./utils/config.js $mode $app"
script2="webpack --progress --mode $webpackmode "
script3="node ./utils/loadStyles.js"
script4="cordova build $platform $cordovamode"
script5="node ./utils/rename.js $mode $app"
eval "
echo \"${RED}$script1${NC}\";
$script1;
Expand All @@ -42,5 +43,7 @@ $script2&&
echo \"${RED}$script3${NC}\";
$script3;
echo \"${RED}$script4${NC}\";
$script4
$script4;
echo \"${RED}$script5${NC}\";
$script5
"