fix: disable the save button when entering an empty file name #410
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: 'Nightly Releases' | |
'on': | |
push: | |
branches: | |
- 'main' | |
jobs: | |
cancelCurrentRuns: | |
name: 'Cancel in-progress Workflow runs' | |
runs-on: 'ubuntu-22.04' | |
steps: | |
- name: 'Cancel in-progress Workflow runs' | |
uses: 'styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa' | |
with: | |
access_token: '${{ secrets.GITHUB_TOKEN }}' | |
deployWeb: | |
name: 'Deploy Web to dev.lyricistant.app' | |
runs-on: 'ubuntu-22.04' | |
needs: | |
- 'cancelCurrentRuns' | |
steps: | |
- name: 'Mask any potential PII' | |
run: "echo \"::add-mask::${{ secrets.PHONE_NUMBER }}\"\necho \"::add-mask::${{ secrets.APPLE_ID }}\"" | |
- name: 'Checkout the current branch' | |
uses: 'actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11' | |
with: | |
fetch-depth: 0 | |
- name: 'Setup Node.js - 20' | |
uses: 'actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8' | |
with: | |
node-version: '>=20' | |
cache: 'npm' | |
- uses: 'actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9' | |
name: 'Cache Node Modules' | |
with: | |
path: '~/.npm' | |
key: '${{ runner.os}}-node-${{ hashFiles(''**/package-lock.json'') }}' | |
restore-keys: '${{ runner.os }}-node-' | |
- name: 'Install Gulp' | |
run: 'npm install -g gulp@5' | |
- name: 'Install Node modules' | |
run: 'npm ci' | |
- name: 'Build Web' | |
run: 'gulp buildWeb --max-old-space-size=8192' | |
env: | |
NIGHTLY: true | |
- name: 'Deploy Web' | |
uses: 'peaceiris/actions-gh-pages@4f9cc6602d3f66b9c108549d475ec49e8ef4d45e' | |
with: | |
personal_token: '${{ secrets.LYRICISTANT_TOKEN }}' | |
publish_branch: 'gh-pages' | |
publish_dir: 'apps/web/dist/production/' | |
force_orphan: true | |
cname: 'dev.lyricistant.app' | |
buildIOSApp: | |
name: 'Build iOS' | |
runs-on: 'macos-13' | |
steps: | |
- name: 'Mask any potential PII' | |
run: "echo \"::add-mask::${{ secrets.PHONE_NUMBER }}\"\necho \"::add-mask::${{ secrets.APPLE_ID }}\"" | |
- name: 'Checkout the current branch' | |
uses: 'actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11' | |
with: | |
fetch-depth: 0 | |
- name: 'Setup Node.js - 20' | |
uses: 'actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8' | |
with: | |
node-version: '>=20' | |
cache: 'npm' | |
- uses: 'actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9' | |
name: 'Cache Node Modules' | |
with: | |
path: '~/.npm' | |
key: '${{ runner.os}}-node-${{ hashFiles(''**/package-lock.json'') }}' | |
restore-keys: '${{ runner.os }}-node-' | |
- name: 'Install Gulp' | |
run: 'npm install -g gulp@5' | |
- name: 'Setup Ruby' | |
uses: 'ruby/setup-ruby@6bd3d993c602f6b675728ebaecb2b569ff86e99b' | |
with: | |
bundler-cache: true | |
- name: 'Setup Java 17' | |
uses: 'actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9' | |
with: | |
java-version: 17 | |
distribution: 'temurin' | |
- name: 'Install Fastlane' | |
run: 'gem install bundler && bundle install' | |
- name: 'Install Node modules' | |
run: 'npm ci' | |
- name: 'Create App Store Connect credentials' | |
run: 'echo "${{ secrets.APP_STORE_CONNECT_KEY }}" | base64 --decode > apps/mobile/ios/authkey.p8' | |
- name: 'Bundle Mobile' | |
run: 'gulp bundleIOS --max-old-space-size=8192' | |
env: | |
NIGHTLY: true | |
- name: 'Build iOS' | |
run: 'bundle exec fastlane ios release' | |
env: | |
APP_STORE_KEY_ID: '${{ secrets.APP_STORE_KEY_ID }}' | |
APP_STORE_ISSUER_ID: '${{ secrets.APP_STORE_ISSUER_ID }}' | |
FIRST_NAME: 'Wardell' | |
LAST_NAME: 'Bagby' | |
PHONE: '${{ secrets.PHONE }}' | |
EMAIL: '${{ secrets.APPLE_ID }}' | |
MATCH_GIT_BASIC_AUTHORIZATION: '${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}' | |
MATCH_PASSWORD: '${{ secrets.MATCH_PASSWORD }}' | |
- name: 'Upload iOS app' | |
uses: 'actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba' | |
with: | |
name: 'ios-app' | |
path: 'apps/mobile/dist/ios/*.ipa' | |
needs: | |
- 'cancelCurrentRuns' | |
buildAndroidApp: | |
name: 'Build Android' | |
runs-on: 'ubuntu-22.04' | |
steps: | |
- name: 'Mask any potential PII' | |
run: "echo \"::add-mask::${{ secrets.PHONE_NUMBER }}\"\necho \"::add-mask::${{ secrets.APPLE_ID }}\"" | |
- name: 'Checkout the current branch' | |
uses: 'actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11' | |
with: | |
fetch-depth: 0 | |
- name: 'Setup Node.js - 20' | |
uses: 'actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8' | |
with: | |
node-version: '>=20' | |
cache: 'npm' | |
- uses: 'actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9' | |
name: 'Cache Node Modules' | |
with: | |
path: '~/.npm' | |
key: '${{ runner.os}}-node-${{ hashFiles(''**/package-lock.json'') }}' | |
restore-keys: '${{ runner.os }}-node-' | |
- name: 'Install Gulp' | |
run: 'npm install -g gulp@5' | |
- name: 'Setup Ruby' | |
uses: 'ruby/setup-ruby@6bd3d993c602f6b675728ebaecb2b569ff86e99b' | |
with: | |
bundler-cache: true | |
- name: 'Setup Java 17' | |
uses: 'actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9' | |
with: | |
java-version: 17 | |
distribution: 'temurin' | |
- name: 'Install Fastlane' | |
run: 'gem install bundler && bundle install' | |
- name: 'Install Node modules' | |
run: 'npm ci' | |
- name: 'Populate keystore' | |
run: 'echo "${{ secrets.KEYSTORE }}" | base64 --decode > apps/mobile/android/android.keystore' | |
- name: 'Populate keystore properties' | |
run: 'echo "${{ secrets.KEYSTORE_PROPERTIES }}" | base64 --decode > apps/mobile/android/keystore.properties' | |
- name: 'Populate Play Store credentials' | |
run: 'echo "${{ secrets.PLAY_STORE_CREDS }}" | base64 --decode > play-store-credentials.json' | |
- name: 'Bundle Mobile' | |
run: 'gulp bundleAndroid --max-old-space-size=8192' | |
env: | |
NIGHTLY: true | |
- name: 'Build Android' | |
run: 'bundle exec fastlane android release' | |
- name: 'Upload Android app' | |
uses: 'actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba' | |
with: | |
name: 'android-app' | |
path: 'apps/mobile/dist/android/*.apk' | |
needs: | |
- 'cancelCurrentRuns' | |
buildElectronApps: | |
name: 'Build Electron Apps' | |
runs-on: 'macos-13' | |
steps: | |
- name: 'Mask any potential PII' | |
run: "echo \"::add-mask::${{ secrets.PHONE_NUMBER }}\"\necho \"::add-mask::${{ secrets.APPLE_ID }}\"" | |
- name: 'Checkout the current branch' | |
uses: 'actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11' | |
with: | |
fetch-depth: 0 | |
- name: 'Setup Node.js - 20' | |
uses: 'actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8' | |
with: | |
node-version: '>=20' | |
cache: 'npm' | |
- uses: 'actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9' | |
name: 'Cache Node Modules' | |
with: | |
path: '~/.npm' | |
key: '${{ runner.os}}-node-${{ hashFiles(''**/package-lock.json'') }}' | |
restore-keys: '${{ runner.os }}-node-' | |
- name: 'Install Gulp' | |
run: 'npm install -g gulp@5' | |
- name: 'Install Node modules' | |
run: 'npm ci' | |
- name: 'Build Electron apps' | |
uses: 'nick-invision/retry@7152eba30c6575329ac0576536151aca5a72780e' | |
env: | |
CSC_LINK: '${{ secrets.MACOS_CERT }}' | |
CSC_KEY_PASSWORD: '${{ secrets.MACOS_CERT_PASSWORD }}' | |
APPLE_ID: '${{ secrets.APPLE_ID }}' | |
APPLE_ID_PASSWORD: '${{ secrets.APPLE_ID_PASSWORD }}' | |
NIGHTLY: true | |
with: | |
timeout_minutes: 60 | |
max_attempts: 3 | |
command: 'gulp buildAllElectronApps --max-old-space-size=8192' | |
- name: 'Upload Electron apps' | |
uses: 'actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba' | |
with: | |
name: 'electron-apps' | |
path: 'apps/electron/dist/production/app/*.*' | |
needs: | |
- 'cancelCurrentRuns' | |
createGithubRelease: | |
name: 'Create Github Nightly Release' | |
runs-on: 'ubuntu-22.04' | |
needs: | |
- 'buildIOSApp' | |
- 'buildElectronApps' | |
- 'buildAndroidApp' | |
steps: | |
- name: 'Mask any potential PII' | |
run: "echo \"::add-mask::${{ secrets.PHONE_NUMBER }}\"\necho \"::add-mask::${{ secrets.APPLE_ID }}\"" | |
- name: 'Checkout the current branch' | |
uses: 'actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11' | |
with: | |
fetch-depth: 0 | |
- name: 'Setup Node.js - 20' | |
uses: 'actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8' | |
with: | |
node-version: '>=20' | |
cache: 'npm' | |
- uses: 'actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9' | |
name: 'Cache Node Modules' | |
with: | |
path: '~/.npm' | |
key: '${{ runner.os}}-node-${{ hashFiles(''**/package-lock.json'') }}' | |
restore-keys: '${{ runner.os }}-node-' | |
- name: 'Install Gulp' | |
run: 'npm install -g gulp@5' | |
- name: 'Install Node modules' | |
run: 'npm ci' | |
- name: 'Create Github release notes' | |
run: './scripts/create_release_changelog.ts all release.txt unreleased' | |
- name: 'Download iOS app' | |
uses: 'actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d' | |
with: | |
name: 'ios-app' | |
path: '/tmp/artifacts' | |
- name: 'Download Electron apps' | |
uses: 'actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d' | |
with: | |
name: 'electron-apps' | |
path: '/tmp/artifacts' | |
- name: 'Download Android app' | |
uses: 'actions/download-artifact@8caf195ad4b1dee92908e23f56eeb0696f1dd42d' | |
with: | |
name: 'android-app' | |
path: '/tmp/artifacts' | |
- name: 'Delete current nightly tag and release' | |
uses: 'dev-drprasad/delete-tag-and-release/@82600feb9527126eca69833f07bafe53279bd9b4' | |
with: | |
delete_release: true | |
tag_name: 'latest' | |
github_token: '${{ secrets.GITHUB_TOKEN }}' | |
- name: 'Wait for tag deletion to be propagated' | |
run: 'sleep 30s' | |
- name: 'Create Nightly Github release' | |
uses: 'softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564' | |
with: | |
token: '${{ secrets.GITHUB_TOKEN }}' | |
body_path: 'release.txt' | |
files: '/tmp/artifacts/*.*' | |
name: 'Lyricistant - Nightly' | |
tag_name: 'latest' | |
prerelease: true |