chore(ci): remove ability to trigger specific-platform builds

[skip ci]
This commit is contained in:
Jagandeep Brar
2022-06-22 17:29:30 -04:00
parent c71222aa7f
commit 7ad952fbde
11 changed files with 89 additions and 261 deletions

View File

@@ -3,10 +3,10 @@ name: 'Build Web'
on:
workflow_call:
inputs:
build-title:
build-flavor:
required: true
type: string
flavor:
build-title:
required: true
type: string
@@ -75,7 +75,7 @@ jobs:
outputs: type=docker,dest=${{ github.workspace}}/output/lunasea-web-docker.tar
tags: |
ghcr.io/jagandeepbrar/lunasea:${{ inputs.build-title }}
ghcr.io/jagandeepbrar/lunasea:${{ inputs.flavor }}
ghcr.io/jagandeepbrar/lunasea:${{ inputs.build-flavor }}
- name: Upload Artifact
uses: actions/upload-artifact@v3

View File

@@ -6,30 +6,12 @@ on:
build-changelog:
required: true
type: string
build-flavor:
required: true
type: string
build-title:
required: true
type: string
flavor:
required: true
type: string
enable-android:
required: true
type: string
enable-ios:
required: true
type: string
enable-linux:
required: true
type: string
enable-macos:
required: true
type: string
enable-web:
required: true
type: string
enable-windows:
required: true
type: string
secrets:
DISCORD_WEBHOOK_EDGE:
@@ -59,12 +41,11 @@ jobs:
DISCORD_WEBHOOK_BETA: ${{ secrets.DISCORD_WEBHOOK_BETA }}
DISCORD_WEBHOOK_CANDIDATE: ${{ secrets.DISCORD_WEBHOOK_CANDIDATE }}
DISCORD_WEBHOOK_STABLE: ${{ secrets.DISCORD_WEBHOOK_STABLE }}
FLAVOR: ${{ inputs.flavor }}
BUILD_FLAVOR: ${{ inputs.build-flavor }}
with:
result-encoding: string
script: |
const ref = process.env.FLAVOR || 'edge';
switch (ref) {
switch (process.env.BUILD_FLAVOR) {
case 'beta': return process.env.DISCORD_WEBHOOK_BETA;
case 'candidate': return process.env.DISCORD_WEBHOOK_CANDIDATE;
case 'stable': return process.env.DISCORD_WEBHOOK_STABLE;
@@ -76,15 +57,9 @@ jobs:
id: embed
uses: actions/github-script@v6
env:
BUILD_CHANGELOG: ${{ inputs.build-changelog }}
BUILD_FLAVOR: ${{ inputs.build-flavor }}
BUILD_TITLE: ${{ inputs.build-title }}
CHANGELOG: ${{ inputs.build-changelog }}
ENABLE_ANDROID: ${{ inputs.enable-android }}
ENABLE_IOS: ${{ inputs.enable-ios }}
ENABLE_LINUX: ${{ inputs.enable-linux }}
ENABLE_MACOS: ${{ inputs.enable-macos }}
ENABLE_WEB: ${{ inputs.enable-web }}
ENABLE_WINDOWS: ${{ inputs.enable-windows }}
FLAVOR: ${{ inputs.flavor }}
with:
result-encoding: string
script: return require('.github/scripts/notify-embed.js')();

View File

@@ -11,6 +11,9 @@ on:
build-changelog:
description: "Build Changelog"
value: ${{ jobs.build-details.outputs.build-changelog }}
build-flavor:
description: "Build Flavor"
value: ${{ jobs.build-details.outputs.build-flavor }}
build-number:
description: "Build Number"
value: ${{ jobs.build-details.outputs.build-number }}
@@ -20,144 +23,18 @@ on:
build-version:
description: "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:
platform-list:
name: Platform List
runs-on: ubuntu-latest
outputs:
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-changelog: ${{ steps.build-changelog.outputs.result }}
build-flavor: ${{ steps.build-flavor.outputs.result }}
build-number: ${{ steps.build-number.outputs.result }}
build-title: ${{ steps.build-title.outputs.output }}
build-version: ${{ steps.build-version.outputs.current-version }}
@@ -179,11 +56,29 @@ jobs:
MESSAGE=`git show -s --format=%s`
echo "::set-output name=commit-message::$MESSAGE"
- name: Build Flavor
id: build-flavor
uses: actions/github-script@v6
env:
FLAVOR: ${{ inputs.flavor }}
with:
result-encoding: string
script: |
const flavor = process.env.FLAVOR;
if (flavor) switch (flavor) {
case 'edge':
case 'beta':
case 'candidate':
case 'stable':
return flavor;
}
return 'edge';
- name: Build Changelog
id: build-changelog
uses: actions/github-script@v6
env:
FLAVOR: ${{ inputs.flavor }}
FLAVOR: ${{ steps.build-flavor.outputs.result }}
MESSAGE: ${{ steps.commit-message.outputs.commit-message }}
with:
result-encoding: string
@@ -213,20 +108,22 @@ jobs:
id: build-title
run: |
HASH=`git rev-parse --short ${{ github.sha }}`
TITLE="v${{ steps.build-version.outputs.current-version }}-${{ inputs.flavor }}-${{ steps.build-number.outputs.result }}-$HASH"
TITLE="v${{ steps.build-version.outputs.current-version }}-${{ steps.build-flavor.outputs.result }}-${{ steps.build-number.outputs.result }}-$HASH"
echo "::set-output name=output::$TITLE"
- name: Log Build Details
env:
changelog: ${{ steps.build-changelog.outputs.result }}
number: ${{ steps.build-number.outputs.result }}
title: ${{ steps.build-title.outputs.output }}
version: ${{ steps.build-version.outputs.current-version }}
CHANGELOG: ${{ steps.build-changelog.outputs.result }}
FLAVOR: ${{ steps.build-flavor.outputs.result }}
NUMBER: ${{ steps.build-number.outputs.result }}
TITLE: ${{ steps.build-title.outputs.output }}
VERSION: ${{ steps.build-version.outputs.current-version }}
run: |
echo "Build Changelog: $changelog"
echo "Build Number: $number"
echo "Build Title: $title"
echo "Build Version: $version"
echo "Build Changelog: $CHANGELOG"
echo "Build Flavor: $FLAVOR"
echo "Build Number: $NUMBER"
echo "Build Title: $TITLE"
echo "Build Version: $VERSION"
generate-files:
name: Generate Files
@@ -242,7 +139,7 @@ jobs:
- name: Generate Environment Configuration
run: |
export FLAVOR=${{ inputs.flavor }}
export FLAVOR=${{ needs.build-details.outputs.build-flavor }}
export COMMIT=${{ github.sha }}
export BUILD=${{ needs.build-details.outputs.build-number }}
flutter packages pub run environment_config:generate

View File

@@ -6,15 +6,15 @@ on:
build-changelog:
required: true
type: string
build-flavor:
required: true
type: string
build-number:
required: true
type: string
build-title:
required: true
type: string
flavor:
required: true
type: string
secrets:
GOOGLE_PLAY_API:
@@ -51,7 +51,7 @@ jobs:
id: channel
uses: actions/github-script@v6
env:
FLAVOR: ${{ inputs.flavor }}
FLAVOR: ${{ inputs.build-flavor }}
with:
result-encoding: string
script: |
@@ -121,4 +121,4 @@ jobs:
AWS_S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }}
AWS_REGION: ${{ secrets.S3_REGION }}
SOURCE_DIR: ${{ github.workspace }}/output
DEST_DIR: latest/${{ inputs.flavor }}
DEST_DIR: latest/${{ inputs.build-flavor }}

View File

@@ -6,15 +6,15 @@ on:
build-changelog:
required: true
type: string
build-flavor:
required: true
type: string
build-number:
required: true
type: string
build-title:
required: true
type: string
flavor:
required: true
type: string
secrets:
APPLE_ID:
@@ -74,7 +74,7 @@ jobs:
APPLE_STORE_CONNECT_KEY_FILEPATH: ${{ github.workspace }}/keys/appstore.p8
APPLE_STORE_CONNECT_KEY_ID: ${{ secrets.APPLE_STORE_CONNECT_KEY_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
run: bundle exec fastlane deploy_appstore groups:${{ inputs.flavor }} ipa:${{ github.workspace }}/output/lunasea-ios.ipa
run: bundle exec fastlane deploy_appstore groups:${{ inputs.build-flavor }} ipa:${{ github.workspace }}/output/lunasea-ios.ipa
s3:
name: S3
@@ -119,4 +119,4 @@ jobs:
AWS_S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }}
AWS_REGION: ${{ secrets.S3_REGION }}
SOURCE_DIR: ${{ github.workspace }}/output
DEST_DIR: latest/${{ inputs.flavor }}
DEST_DIR: latest/${{ inputs.build-flavor }}

View File

@@ -3,15 +3,15 @@ name: Publish Linux
on:
workflow_call:
inputs:
build-flavor:
required: true
type: string
build-number:
required: true
type: string
build-title:
required: true
type: string
flavor:
required: true
type: string
secrets:
SNAPCRAFT_STORE_CREDENTIALS:
@@ -48,7 +48,7 @@ jobs:
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
with:
release: ${{ inputs.flavor }}
release: ${{ inputs.build-flavor }}
snap: ${{ github.workspace }}/output/lunasea-linux-amd64.snap
s3:
@@ -94,4 +94,4 @@ jobs:
AWS_S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }}
AWS_REGION: ${{ secrets.S3_REGION }}
SOURCE_DIR: ${{ github.workspace }}/output
DEST_DIR: latest/${{ inputs.flavor }}
DEST_DIR: latest/${{ inputs.build-flavor }}

View File

@@ -6,15 +6,15 @@ on:
build-changelog:
required: true
type: string
build-flavor:
required: true
type: string
build-number:
required: true
type: string
build-title:
required: true
type: string
flavor:
required: true
type: string
secrets:
APPLE_ID:
@@ -74,7 +74,7 @@ jobs:
APPLE_STORE_CONNECT_KEY_FILEPATH: ${{ github.workspace }}/keys/appstore.p8
APPLE_STORE_CONNECT_KEY_ID: ${{ secrets.APPLE_STORE_CONNECT_KEY_ID }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
run: bundle exec fastlane deploy_appstore groups:${{ inputs.flavor }} pkg:${{ github.workspace }}/output/lunasea-macos-amd64.pkg
run: bundle exec fastlane deploy_appstore groups:${{ inputs.build-flavor }} pkg:${{ github.workspace }}/output/lunasea-macos-amd64.pkg
s3:
name: S3
@@ -125,4 +125,4 @@ jobs:
AWS_S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }}
AWS_REGION: ${{ secrets.S3_REGION }}
SOURCE_DIR: ${{ github.workspace }}/output
DEST_DIR: latest/${{ inputs.flavor }}
DEST_DIR: latest/${{ inputs.build-flavor }}

View File

@@ -3,15 +3,15 @@ name: Publish Web (Docker)
on:
workflow_call:
inputs:
build-flavor:
required: true
type: string
build-number:
required: true
type: string
build-title:
required: true
type: string
flavor:
required: true
type: string
secrets:
NETLIFY_AUTH_TOKEN:
@@ -72,7 +72,7 @@ jobs:
id: channel
uses: actions/github-script@v6
env:
FLAVOR: ${{ inputs.flavor }}
FLAVOR: ${{ inputs.build-flavor }}
with:
result-encoding: string
script: |
@@ -138,4 +138,4 @@ jobs:
AWS_S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }}
AWS_REGION: ${{ secrets.S3_REGION }}
SOURCE_DIR: ${{ github.workspace }}/output
DEST_DIR: latest/${{ inputs.flavor }}
DEST_DIR: latest/${{ inputs.build-flavor }}

View File

@@ -3,15 +3,15 @@ name: Publish Windows
on:
workflow_call:
inputs:
build-flavor:
required: true
type: string
build-number:
required: true
type: string
build-title:
required: true
type: string
flavor:
required: true
type: string
secrets:
S3_ACCESS_KEY:
@@ -75,4 +75,4 @@ jobs:
AWS_S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }}
AWS_REGION: ${{ secrets.S3_REGION }}
SOURCE_DIR: ${{ github.workspace }}/output
DEST_DIR: latest/${{ inputs.flavor }}
DEST_DIR: latest/${{ inputs.build-flavor }}

View File

@@ -22,7 +22,7 @@ jobs:
name: Prepare
uses: JagandeepBrar/LunaSea/.github/workflows/prepare.yml@master
with:
flavor: ${{ inputs.flavor || 'edge' }}
flavor: ${{ inputs.flavor }}
secrets:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
@@ -36,7 +36,6 @@ jobs:
build-android:
name: Build Android
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 }}
@@ -48,7 +47,6 @@ jobs:
build-ios:
name: Build iOS
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 }}
@@ -66,13 +64,11 @@ jobs:
build-linux:
name: Build Linux
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: [ 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 }}
@@ -95,18 +91,16 @@ jobs:
build-web:
name: Build Web
needs: [ prepare, validate ]
if: ${{ needs.prepare.outputs.enable-web == 'true' }}
uses: JagandeepBrar/LunaSea/.github/workflows/build_web.yml@master
with:
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-title: ${{ needs.prepare.outputs.build-title }}
flavor: ${{ inputs.flavor || 'edge' }}
secrets:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
build-windows:
name: Build Windows
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 }}
@@ -119,8 +113,8 @@ jobs:
needs: [ prepare, build-android ]
uses: JagandeepBrar/LunaSea/.github/workflows/publish_android.yml@master
with:
flavor: ${{ inputs.flavor || 'edge' }}
build-changelog: ${{ needs.prepare.outputs.build-changelog }}
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-number: ${{ needs.prepare.outputs.build-number }}
build-title: ${{ needs.prepare.outputs.build-title }}
secrets:
@@ -136,8 +130,8 @@ jobs:
needs: [ prepare, build-ios ]
uses: JagandeepBrar/LunaSea/.github/workflows/publish_ios.yml@master
with:
flavor: ${{ inputs.flavor || 'edge' }}
build-changelog: ${{ needs.prepare.outputs.build-changelog }}
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-number: ${{ needs.prepare.outputs.build-number }}
build-title: ${{ needs.prepare.outputs.build-title }}
secrets:
@@ -158,7 +152,7 @@ jobs:
needs: [ prepare, build-linux ]
uses: JagandeepBrar/LunaSea/.github/workflows/publish_linux.yml@master
with:
flavor: ${{ inputs.flavor || 'edge' }}
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-number: ${{ needs.prepare.outputs.build-number }}
build-title: ${{ needs.prepare.outputs.build-title }}
secrets:
@@ -174,8 +168,8 @@ jobs:
needs: [ prepare, build-macos ]
uses: JagandeepBrar/LunaSea/.github/workflows/publish_macos.yml@master
with:
flavor: ${{ inputs.flavor || 'edge' }}
build-changelog: ${{ needs.prepare.outputs.build-changelog }}
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-number: ${{ needs.prepare.outputs.build-number }}
build-title: ${{ needs.prepare.outputs.build-title }}
secrets:
@@ -196,7 +190,7 @@ jobs:
needs: [ prepare, build-web ]
uses: JagandeepBrar/LunaSea/.github/workflows/publish_web.yml@master
with:
flavor: ${{ inputs.flavor || 'edge' }}
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-number: ${{ needs.prepare.outputs.build-number }}
build-title: ${{ needs.prepare.outputs.build-title }}
secrets:
@@ -212,7 +206,7 @@ jobs:
needs: [ prepare, build-windows ]
uses: JagandeepBrar/LunaSea/.github/workflows/publish_windows.yml@master
with:
flavor: ${{ inputs.flavor || 'edge' }}
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-number: ${{ needs.prepare.outputs.build-number }}
build-title: ${{ needs.prepare.outputs.build-title }}
secrets:
@@ -225,26 +219,11 @@ jobs:
notify:
name: Notify
needs: [ prepare, publish-android, publish-ios, publish-linux, publish-macos, publish-web, publish-windows ]
if: |
always() &&
!cancelled() &&
(needs.publish-android.result == 'success' || needs.publish-android.result == 'skipped') &&
(needs.publish-ios.result == 'success' || needs.publish-ios.result == 'skipped') &&
(needs.publish-linux.result == 'success' || needs.publish-linux.result == 'skipped') &&
(needs.publish-macos.result == 'success' || needs.publish-macos.result == 'skipped') &&
(needs.publish-web.result == 'success' || needs.publish-web.result == 'skipped') &&
(needs.publish-windows.result == 'success' || needs.publish-windows.result == 'skipped')
uses: JagandeepBrar/LunaSea/.github/workflows/notify.yml@master
with:
flavor: ${{ inputs.flavor || 'edge' }}
build-changelog: ${{ needs.prepare.outputs.build-changelog }}
build-flavor: ${{ needs.prepare.outputs.build-flavor }}
build-title: ${{ needs.prepare.outputs.build-title }}
enable-android: ${{ needs.prepare.outputs.enable-android && needs.publish-android.result == 'success' }}
enable-ios: ${{ needs.prepare.outputs.enable-ios && needs.publish-ios.result == 'success' }}
enable-linux: ${{ needs.prepare.outputs.enable-linux && needs.publish-linux.result == 'success' }}
enable-macos: ${{ needs.prepare.outputs.enable-macos && needs.publish-macos.result == 'success' }}
enable-web: ${{ needs.prepare.outputs.enable-web && needs.publish-web.result == 'success' }}
enable-windows: ${{ needs.prepare.outputs.enable-windows && needs.publish-windows.result == 'success' }}
secrets:
DISCORD_WEBHOOK_EDGE: ${{ secrets.DISCORD_WEBHOOK_EDGE }}
DISCORD_WEBHOOK_BETA: ${{ secrets.DISCORD_WEBHOOK_BETA }}