name: Electron Builder - Nightly / Manual on: schedule: - cron: '0 20 * * 1,2,3' # At 8 PM UTC on Monday, Tuesday, and Wednesday which is 3 AM UTC+7 Tuesday, Wednesday, and Thursday workflow_dispatch: inputs: public_provider: type: choice description: 'Public Provider' options: - none - aws-s3 default: none pull_request_review: types: [submitted] jobs: set-public-provider: runs-on: ubuntu-latest outputs: public_provider: ${{ steps.set-public-provider.outputs.public_provider }} ref: ${{ steps.set-public-provider.outputs.ref }} steps: - name: Set public provider id: set-public-provider run: | if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then echo "::set-output name=public_provider::${{ github.event.inputs.public_provider }}" echo "::set-output name=ref::${{ github.ref }}" else if [ "${{ github.event_name }}" == "schedule" ]; then echo "::set-output name=public_provider::aws-s3" echo "::set-output name=ref::refs/heads/dev" elif [ "${{ github.event_name }}" == "push" ]; then echo "::set-output name=public_provider::aws-s3" echo "::set-output name=ref::${{ github.ref }}" elif [ "${{ github.event_name }}" == "pull_request_review" ]; then echo "::set-output name=public_provider::none" echo "::set-output name=ref::${{ github.ref }}" else echo "::set-output name=public_provider::none" echo "::set-output name=ref::${{ github.ref }}" fi fi # Job create Update app version based on latest release tag with build number and save to output get-update-version: uses: ./.github/workflows/template-get-update-version.yml build-macos: uses: ./.github/workflows/template-build-macos.yml needs: [get-update-version, set-public-provider] secrets: inherit with: ref: ${{ needs.set-public-provider.outputs.ref }} public_provider: ${{ needs.set-public-provider.outputs.public_provider }} new_version: ${{ needs.get-update-version.outputs.new_version }} build-windows-x64: uses: ./.github/workflows/template-build-windows-x64.yml secrets: inherit needs: [get-update-version, set-public-provider] with: ref: ${{ needs.set-public-provider.outputs.ref }} public_provider: ${{ needs.set-public-provider.outputs.public_provider }} new_version: ${{ needs.get-update-version.outputs.new_version }} build-linux-x64: uses: ./.github/workflows/template-build-linux-x64.yml secrets: inherit needs: [get-update-version, set-public-provider] with: ref: ${{ needs.set-public-provider.outputs.ref }} public_provider: ${{ needs.set-public-provider.outputs.public_provider }} new_version: ${{ needs.get-update-version.outputs.new_version }} sync-temp-to-latest: needs: [set-public-provider, build-windows-x64, build-linux-x64, build-macos] runs-on: ubuntu-latest steps: - name: Sync temp to latest if: ${{ needs.set-public-provider.outputs.public_provider == 'aws-s3' }} run: | aws s3 sync s3://${{ secrets.DELTA_AWS_S3_BUCKET_NAME }}/temp-nightly/ s3://${{ secrets.DELTA_AWS_S3_BUCKET_NAME }}/nightly/ env: AWS_ACCESS_KEY_ID: ${{ secrets.DELTA_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.DELTA_AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: ${{ secrets.DELTA_AWS_REGION }} AWS_EC2_METADATA_DISABLED: "true" noti-discord-nightly-and-update-url-readme: needs: [build-macos, build-windows-x64, build-linux-x64, get-update-version, set-public-provider, sync-temp-to-latest] secrets: inherit if: github.event_name == 'schedule' uses: ./.github/workflows/template-noti-discord-and-update-url-readme.yml with: ref: refs/heads/dev build_reason: Nightly push_to_branch: dev new_version: ${{ needs.get-update-version.outputs.new_version }} noti-discord-pre-release-and-update-url-readme: needs: [build-macos, build-windows-x64, build-linux-x64, get-update-version, set-public-provider, sync-temp-to-latest] secrets: inherit if: github.event_name == 'push' uses: ./.github/workflows/template-noti-discord-and-update-url-readme.yml with: ref: refs/heads/dev build_reason: Pre-release push_to_branch: dev new_version: ${{ needs.get-update-version.outputs.new_version }} noti-discord-manual-and-update-url-readme: needs: [build-macos, build-windows-x64, build-linux-x64, get-update-version, set-public-provider, sync-temp-to-latest] secrets: inherit if: github.event_name == 'workflow_dispatch' && github.event.inputs.public_provider == 'aws-s3' uses: ./.github/workflows/template-noti-discord-and-update-url-readme.yml with: ref: refs/heads/dev build_reason: Manual push_to_branch: dev new_version: ${{ needs.get-update-version.outputs.new_version }} comment-pr-build-url: needs: [build-macos, build-windows-x64, build-linux-x64, get-update-version, set-public-provider, sync-temp-to-latest] runs-on: ubuntu-latest if: github.event_name == 'pull_request_review' steps: - name: Set up GitHub CLI run: | curl -sSL https://github.com/cli/cli/releases/download/v2.33.0/gh_2.33.0_linux_amd64.tar.gz | tar xz sudo cp gh_2.33.0_linux_amd64/bin/gh /usr/local/bin/ - name: Comment build URL on PR env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | PR_URL=${{ github.event.pull_request.html_url }} RUN_ID=${{ github.run_id }} COMMENT="This is the build for this pull request. You can download it from the Artifacts section here: [Build URL](https://github.com/${{ github.repository }}/actions/runs/${RUN_ID})." gh pr comment $PR_URL --body "$COMMENT"