chore(ci): build for all platforms unless platform keywords are specified

This commit is contained in:
Jagandeep Brar
2022-04-13 02:02:51 -04:00
parent 891456f43b
commit eddf40cd00
3 changed files with 171 additions and 242 deletions

View File

@@ -1,168 +0,0 @@
name: Enable Check
on:
workflow_call:
outputs:
android:
description: "Is Android Enabled?"
value: ${{ jobs.android.outputs.android }}
ios:
description: "Is iOS Enabled?"
value: ${{ jobs.ios.outputs.ios }}
linux:
description: "Is Linux Enabled?"
value: ${{ jobs.linux.outputs.linux }}
macos:
description: "Is macOS Enabled?"
value: ${{ jobs.macos.outputs.macos }}
windows:
description: "Is Windows Enabled?"
value: ${{ jobs.windows.outputs.windows }}
web:
description: "Is Web Enabled?"
value: ${{ jobs.web.outputs.web }}
jobs:
android:
name: Android
runs-on: ubuntu-latest
outputs:
android: ${{ steps.output.outputs.enable }}
steps:
- name: Run Script
id: script
uses: actions/github-script@v6
env:
MESSAGE: ${{ github.event.head_commit.message || '[platform:all]' }}
with:
result-encoding: string
script: |
const all = process.env.MESSAGE.includes("[platform:all]");
const android = process.env.MESSAGE.includes("[platform:android]");
return all || android;
- name: Set Output
id: output
run: |
echo ${{ steps.script.outputs.result }}
echo "::set-output name=enable::${{ steps.script.outputs.result }}"
ios:
name: iOS
runs-on: ubuntu-latest
outputs:
ios: ${{ steps.output.outputs.enable }}
steps:
- name: Run Script
id: script
uses: actions/github-script@v6
env:
MESSAGE: ${{ github.event.head_commit.message || '[platform:all]' }}
with:
result-encoding: string
script: |
const all = process.env.MESSAGE.includes("[platform:all]");
const ios = process.env.MESSAGE.includes("[platform:ios]");
return all || ios;
- name: Set Output
id: output
run: |
echo ${{ steps.script.outputs.result }}
echo "::set-output name=enable::${{ steps.script.outputs.result }}"
linux:
name: Linux
runs-on: ubuntu-latest
outputs:
linux: ${{ steps.output.outputs.enable }}
steps:
- name: Run Script
id: script
uses: actions/github-script@v6
env:
MESSAGE: ${{ github.event.head_commit.message || '[platform:all]' }}
with:
result-encoding: string
script: |
const all = process.env.MESSAGE.includes("[platform:all]");
const linux = process.env.MESSAGE.includes("[platform:linux]");
return all || linux;
- name: Set Output
id: output
run: |
echo ${{ steps.script.outputs.result }}
echo "::set-output name=enable::${{ steps.script.outputs.result }}"
macos:
name: macOS
runs-on: ubuntu-latest
outputs:
macos: ${{ steps.output.outputs.enable }}
steps:
- name: Run Script
id: script
uses: actions/github-script@v6
env:
MESSAGE: ${{ github.event.head_commit.message || '[platform:all]' }}
with:
result-encoding: string
script: |
const all = process.env.MESSAGE.includes("[platform:all]");
const macos = process.env.MESSAGE.includes("[platform:macos]");
return all || macos;
- name: Set Output
id: output
run: |
echo ${{ steps.script.outputs.result }}
echo "::set-output name=enable::${{ steps.script.outputs.result }}"
windows:
name: Windows
runs-on: ubuntu-latest
outputs:
windows: ${{ steps.output.outputs.enable }}
steps:
- name: Run Script
id: script
uses: actions/github-script@v6
env:
MESSAGE: ${{ github.event.head_commit.message || '[platform:all]' }}
with:
result-encoding: string
script: |
const all = process.env.MESSAGE.includes("[platform:all]");
const windows = process.env.MESSAGE.includes("[platform:windows]");
return all || windows;
- name: Set Output
id: output
run: |
echo ${{ steps.script.outputs.result }}
echo "::set-output name=enable::${{ steps.script.outputs.result }}"
web:
name: Web
runs-on: ubuntu-latest
outputs:
web: ${{ steps.output.outputs.enable }}
steps:
- name: Run Script
id: script
uses: actions/github-script@v6
env:
MESSAGE: ${{ github.event.head_commit.message || '[platform:all]' }}
with:
result-encoding: string
script: |
const all = process.env.MESSAGE.includes("[platform:all]");
const web = process.env.MESSAGE.includes("[platform:web]");
return all || web;
- name: Set Output
id: output
run: |
echo ${{ steps.script.outputs.result }}
echo "::set-output name=enable::${{ steps.script.outputs.result }}"

View File

@@ -10,24 +10,153 @@ on:
outputs:
build-number:
description: "Build Number"
value: ${{ jobs.build-number.outputs.build-number }}
value: ${{ jobs.build-details.outputs.build-number }}
build-title:
description: "Build Title"
value: ${{ jobs.build-title.outputs.build-title }}
value: ${{ jobs.build-details.outputs.build-title }}
build-version:
description: "Build Version"
value: ${{ jobs.build-version.outputs.build-version }}
value: ${{ jobs.build-details.outputs.build-version }}
enable-android:
description: "Is Android Enabled?"
value: ${{ jobs.platform-list.outputs.android }}
enable-ios:
description: "Is iOS Enabled?"
value: ${{ jobs.platform-list.outputs.ios }}
enable-linux:
description: "Is Linux Enabled?"
value: ${{ jobs.platform-list.outputs.linux }}
enable-macos:
description: "Is macOS Enabled?"
value: ${{ jobs.platform-list.outputs.macos }}
enable-windows:
description: "Is Windows Enabled?"
value: ${{ jobs.platform-list.outputs.windows }}
enable-web:
description: "Is Web Enabled?"
value: ${{ jobs.platform-list.outputs.web }}
secrets:
FIREBASE_TOKEN:
required: true
jobs:
build-number:
name: Build Number
platform-list:
name: Platform List
runs-on: ubuntu-latest
outputs:
build-number: ${{ steps.output.outputs.build-number }}
android: ${{ steps.android.outputs.result }}
ios: ${{ steps.ios.outputs.result }}
linux: ${{ steps.linux.outputs.result }}
macos: ${{ steps.macos.outputs.result }}
windows: ${{ steps.windows.outputs.result }}
web: ${{ steps.web.outputs.result }}
steps:
- name: Check Message for Any Keywords
id: exists
uses: actions/github-script@v6
env:
MESSAGE: ${{ github.event.head_commit.message || '' }}
with:
result-encoding: string
script: |
return process.env.MESSAGE.includes("platform:");
- name: Android
id: android
uses: actions/github-script@v6
env:
EXISTS: ${{ steps.exists.outputs.result }}
MESSAGE: ${{ github.event.head_commit.message || '' }}
with:
result-encoding: string
script: |
if (process.env.EXISTS == "false") return true;
return process.env.MESSAGE.includes("platform:android");
- name: iOS
id: ios
uses: actions/github-script@v6
env:
EXISTS: ${{ steps.exists.outputs.result }}
MESSAGE: ${{ github.event.head_commit.message || '' }}
with:
result-encoding: string
script: |
if (process.env.EXISTS == "false") return true;
return process.env.MESSAGE.includes("platform:ios");
- name: Linux
id: linux
uses: actions/github-script@v6
env:
EXISTS: ${{ steps.exists.outputs.result }}
MESSAGE: ${{ github.event.head_commit.message || '' }}
with:
result-encoding: string
script: |
if (process.env.EXISTS == "false") return true;
return process.env.MESSAGE.includes("platform:linux");
- name: macOS
id: macos
uses: actions/github-script@v6
env:
EXISTS: ${{ steps.exists.outputs.result }}
MESSAGE: ${{ github.event.head_commit.message || '' }}
with:
result-encoding: string
script: |
if (process.env.EXISTS == "false") return true;
return process.env.MESSAGE.includes("platform:macos");
- name: Web
id: web
uses: actions/github-script@v6
env:
EXISTS: ${{ steps.exists.outputs.result }}
MESSAGE: ${{ github.event.head_commit.message || '' }}
with:
result-encoding: string
script: |
if (process.env.EXISTS == "false") return true;
return process.env.MESSAGE.includes("platform:web");
- name: Windows
id: windows
uses: actions/github-script@v6
env:
EXISTS: ${{ steps.exists.outputs.result }}
MESSAGE: ${{ github.event.head_commit.message || '' }}
with:
result-encoding: string
script: |
if (process.env.EXISTS == "false") return true;
return process.env.MESSAGE.includes("platform:windows");
- name: Log Platform List
env:
android: ${{ steps.android.outputs.result }}
ios: ${{ steps.ios.outputs.result }}
linux: ${{ steps.linux.outputs.result }}
macos: ${{ steps.macos.outputs.result }}
windows: ${{ steps.windows.outputs.result }}
web: ${{ steps.web.outputs.result }}
run: |
echo "Android: $android"
echo "iOS: $ios"
echo "Linux: $linux"
echo "macOS: $macos"
echo "Web: $web"
echo "Windows: $windows"
build-details:
name: Build Details
runs-on: ubuntu-latest
outputs:
build-number: ${{ steps.build-number.outputs.result }}
build-title: ${{ steps.build-title.outputs.output }}
build-version: ${{ steps.build-version.outputs.current-version }}
steps:
- name: Checkout Repository
uses: actions/checkout@v2
@@ -40,8 +169,8 @@ jobs:
COUNT=`git rev-list HEAD --count`
echo "::set-output name=commit_count::$COUNT"
- name: Run Script
id: script
- name: Build Number
id: build-number
uses: actions/github-script@v6
env:
COUNT: ${{ steps.commit_count.outputs.commit_count }}
@@ -52,53 +181,26 @@ jobs:
const base = 1000000000;
return base + Number(count);
- name: Set Output
id: output
run: |
echo ${{ steps.script.outputs.result }}
echo "::set-output name=build-number::${{ steps.script.outputs.result }}"
build-version:
name: Build Version
runs-on: ubuntu-latest
outputs:
build-version: ${{ steps.output.outputs.build-version }}
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Get Version
id: version
- name: Build Version
id: build-version
uses: martinbeentjes/npm-get-version-action@v1.1.0
- name: Set Output
id: output
run: |
echo ${{ steps.version.outputs.current-version }}
echo "::set-output name=build-version::${{ steps.version.outputs.current-version }}"
build-title:
name: Build Title
needs: [ build-number, build-version ]
runs-on: ubuntu-latest
outputs:
build-title: ${{ steps.output.outputs.build-title }}
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Determine Short Hash
id: hash
- name: Build Title
id: build-title
run: |
HASH=`git rev-parse --short ${{ github.sha }}`
echo "::set-output name=hash::$HASH"
- name: Set Output
id: output
TITLE="v${{ steps.build-version.outputs.current-version }}-${{ inputs.flavor }}-${{ steps.build-number.outputs.result }}-$HASH"
echo "::set-output name=output::$TITLE"
- name: Log Build Details
env:
number: ${{ steps.build-number.outputs.result }}
title: ${{ steps.build-title.outputs.output }}
version: ${{ steps.build-version.outputs.current-version }}
run: |
TITLE="v${{ needs.build-version.outputs.build-version }}-${{ inputs.flavor }}-${{ needs.build-number.outputs.build-number }}-${{ steps.hash.outputs.hash }}"
echo $TITLE
echo "::set-output name=build-title::$TITLE"
echo "Build Number: $number"
echo "Build Title: $title"
echo "Build Version: $version"
generate-files:
name: Generate Files

View File

@@ -18,13 +18,8 @@ on:
- stable
jobs:
enable:
name: Enable
uses: JagandeepBrar/LunaSea/.github/workflows/enable_check.yml@master
prepare:
name: Prepare
needs: [ enable ]
uses: JagandeepBrar/LunaSea/.github/workflows/prepare.yml@master
with:
flavor: ${{ github.event.inputs.flavor || 'edge' }}
@@ -40,8 +35,8 @@ jobs:
build-android:
name: Build Android
needs: [ enable, prepare, validate ]
if: ${{ needs.enable.outputs.android == 'true' }}
needs: [ prepare, validate ]
if: ${{ needs.prepare.outputs.enable-android == 'true' }}
uses: JagandeepBrar/LunaSea/.github/workflows/build_android.yml@master
with:
build-number: ${{ needs.prepare.outputs.build-number }}
@@ -52,8 +47,8 @@ jobs:
build-ios:
name: Build iOS
needs: [ enable, prepare, validate ]
if: ${{ needs.enable.outputs.ios == 'true' }}
needs: [ prepare, validate ]
if: ${{ needs.prepare.outputs.enable-ios == 'true' }}
uses: JagandeepBrar/LunaSea/.github/workflows/build_ios.yml@master
with:
build-number: ${{ needs.prepare.outputs.build-number }}
@@ -70,14 +65,14 @@ jobs:
build-linux:
name: Build Linux
needs: [ enable, prepare, validate ]
if: ${{ needs.enable.outputs.linux == 'true' }}
needs: [ prepare, validate ]
if: ${{ needs.prepare.outputs.enable-linux == 'true' }}
uses: JagandeepBrar/LunaSea/.github/workflows/build_linux.yml@master
build-macos:
name: Build macOS
needs: [ enable, prepare, validate ]
if: ${{ needs.enable.outputs.macos == 'true' }}
needs: [ prepare, validate ]
if: ${{ needs.prepare.outputs.enable-macos == 'true' }}
uses: JagandeepBrar/LunaSea/.github/workflows/build_macos.yml@master
with:
build-number: ${{ needs.prepare.outputs.build-number }}
@@ -99,8 +94,8 @@ jobs:
build-web:
name: Build Web
needs: [ enable, prepare, validate ]
if: ${{ needs.enable.outputs.web == 'true' }}
needs: [ prepare, validate ]
if: ${{ needs.prepare.outputs.enable-web == 'true' }}
uses: JagandeepBrar/LunaSea/.github/workflows/build_web.yml@master
with:
build-number: ${{ needs.prepare.outputs.build-number }}
@@ -109,8 +104,8 @@ jobs:
build-windows:
name: Build Windows
needs: [ enable, prepare, validate ]
if: ${{ needs.enable.outputs.windows == 'true' }}
needs: [ prepare, validate ]
if: ${{ needs.prepare.outputs.enable-windows == 'true' }}
uses: JagandeepBrar/LunaSea/.github/workflows/build_windows.yml@master
secrets:
CODE_SIGNING_CERTIFICATE: ${{ secrets.CODE_SIGNING_CERTIFICATE }}
@@ -120,18 +115,18 @@ jobs:
publish:
name: Publish
needs: [ enable, prepare, build-android, build-ios, build-linux, build-macos, build-web, build-windows ]
needs: [ prepare, build-android, build-ios, build-linux, build-macos, build-web, build-windows ]
if: ${{ always() }}
uses: JagandeepBrar/LunaSea/.github/workflows/publish.yml@master
with:
flavor: ${{ github.event.inputs.flavor || 'edge' }}
build-title: ${{ needs.prepare.outputs.build-title }}
enable-android: ${{ needs.enable.outputs.android }}
enable-ios: ${{ needs.enable.outputs.ios }}
enable-linux: ${{ needs.enable.outputs.linux }}
enable-macos: ${{ needs.enable.outputs.macos }}
enable-web: ${{ needs.enable.outputs.web }}
enable-windows: ${{ needs.enable.outputs.windows }}
enable-android: ${{ needs.prepare.outputs.enable-android }}
enable-ios: ${{ needs.prepare.outputs.enable-ios }}
enable-linux: ${{ needs.prepare.outputs.enable-linux }}
enable-macos: ${{ needs.prepare.outputs.enable-macos }}
enable-web: ${{ needs.prepare.outputs.enable-web }}
enable-windows: ${{ needs.prepare.outputs.enable-windows }}
secrets:
APPLE_ID: ${{ secrets.APPLE_ID }}