name: Release on: push: branches: - master workflow_dispatch: inputs: flavor: description: Build Flavor required: true default: edge type: choice options: - edge - beta - candidate - stable jobs: cancel: name: Cancel Previous Runs runs-on: ubuntu-latest steps: - name: Cancel Workflow Action uses: styfle/cancel-workflow-action@0.9.1 with: access_token: ${{ github.token }} prepare: name: Prepare needs: [ cancel ] uses: JagandeepBrar/LunaSea/.github/workflows/prepare.yml@master with: flavor: ${{ github.event.inputs.flavor || 'edge' }} secrets: FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} validate: name: Validate needs: [ prepare ] uses: JagandeepBrar/LunaSea/.github/workflows/validate.yml@master secrets: FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} build-android: name: Build Android needs: [ prepare, validate ] uses: JagandeepBrar/LunaSea/.github/workflows/build_android.yml@master with: build-number: ${{ needs.prepare.outputs.build-number }} secrets: FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} KEY_JKS: ${{ secrets.KEY_JKS }} KEY_PROPERTIES: ${{ secrets.KEY_PROPERTIES }} build-ios: name: Build iOS needs: [ prepare, validate ] uses: JagandeepBrar/LunaSea/.github/workflows/build_ios.yml@master with: build-number: ${{ needs.prepare.outputs.build-number }} secrets: APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_ITC_TEAM_ID: ${{ secrets.APPLE_ITC_TEAM_ID }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} IOS_CODESIGNING_IDENTITY: ${{ secrets.IOS_CODESIGNING_IDENTITY }} MATCH_KEYCHAIN_NAME: ${{ secrets.MATCH_KEYCHAIN_NAME }} MATCH_KEYCHAIN_PASSWORD: ${{ secrets.MATCH_KEYCHAIN_PASSWORD }} MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} MATCH_SSH_PRIVATE_KEY: ${{ secrets.MATCH_SSH_PRIVATE_KEY }} build-linux: name: Build Linux needs: [ prepare, validate ] uses: JagandeepBrar/LunaSea/.github/workflows/build_linux.yml@master with: build-number: ${{ needs.prepare.outputs.build-number }} secrets: FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} build-macos: name: Build macOS needs: [ prepare, validate ] uses: JagandeepBrar/LunaSea/.github/workflows/build_macos.yml@master with: build-number: ${{ needs.prepare.outputs.build-number }} secrets: APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_ITC_TEAM_ID: ${{ secrets.APPLE_ITC_TEAM_ID }} APPLE_STORE_CONNECT_ISSUER_ID: ${{ secrets.APPLE_STORE_CONNECT_ISSUER_ID }} APPLE_STORE_CONNECT_KEY: ${{ secrets.APPLE_STORE_CONNECT_KEY }} APPLE_STORE_CONNECT_KEY_ID: ${{ secrets.APPLE_STORE_CONNECT_KEY_ID }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} MACOS_INSTALLER_CERT_APP_STORE: ${{ secrets.MACOS_INSTALLER_CERT_APP_STORE }} MACOS_INSTALLER_CERT_DIRECT: ${{ secrets.MACOS_INSTALLER_CERT_DIRECT }} MATCH_KEYCHAIN_NAME: ${{ secrets.MATCH_KEYCHAIN_NAME }} MATCH_KEYCHAIN_PASSWORD: ${{ secrets.MATCH_KEYCHAIN_PASSWORD }} MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} MATCH_SSH_PRIVATE_KEY: ${{ secrets.MATCH_SSH_PRIVATE_KEY }} build-web: name: Build Web needs: [ prepare, validate ] uses: JagandeepBrar/LunaSea/.github/workflows/build_web.yml@master with: build-number: ${{ needs.prepare.outputs.build-number }} secrets: FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }} publish: name: Publish needs: [ prepare, build-android, build-ios, build-linux, build-macos, build-web ] uses: JagandeepBrar/LunaSea/.github/workflows/publish.yml@master with: flavor: ${{ github.event.inputs.flavor || 'edge' }} build-title: ${{ needs.prepare.outputs.build-title }} secrets: APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_ITC_TEAM_ID: ${{ secrets.APPLE_ITC_TEAM_ID }} APPLE_STORE_CONNECT_ISSUER_ID: ${{ secrets.APPLE_STORE_CONNECT_ISSUER_ID }} APPLE_STORE_CONNECT_KEY: ${{ secrets.APPLE_STORE_CONNECT_KEY }} APPLE_STORE_CONNECT_KEY_ID: ${{ secrets.APPLE_STORE_CONNECT_KEY_ID }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} DISCORD_WEBHOOK_EDGE: ${{ secrets.DISCORD_WEBHOOK_EDGE }} DISCORD_WEBHOOK_BETA: ${{ secrets.DISCORD_WEBHOOK_BETA }} DISCORD_WEBHOOK_CANDIDATE: ${{ secrets.DISCORD_WEBHOOK_CANDIDATE }} DISCORD_WEBHOOK_STABLE: ${{ secrets.DISCORD_WEBHOOK_STABLE }} GOOGLE_PLAY_API: ${{ secrets.GOOGLE_PLAY_API }} NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} SNAPCRAFT_TOKEN: ${{ secrets.SNAPCRAFT_TOKEN }} S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }} S3_BUCKET: ${{ secrets.S3_BUCKET }} S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }} S3_KEY_ID: ${{ secrets.S3_KEY_ID }} S3_REGION: ${{ secrets.S3_REGION }}