Electron Builder - Nightly / Manual #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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" | |