Update build-and-publish.yml #28
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: Main | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
build-linux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '20.x' | |
- name: Install dependencies | |
run: npm install | |
- name: Install Quasar CLI | |
run: npm install -g @quasar/cli | |
- name: Build Quasar Electron App for Linux | |
run: quasar build -m electron | |
- name: Create ZIP Archive for Linux | |
run: | | |
cd dist/electron/Packaged | |
zip -r QChatGPT-linux-x64.zip QChatGPT-linux-x64 | |
- name: Upload Linux Build Artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: qchatgpt-linux | |
path: dist/electron/Packaged/QChatGPT-linux-x64.zip | |
build-windows: | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '20.x' | |
- name: Install dependencies | |
run: npm install | |
- name: Install Quasar CLI | |
run: npm install -g @quasar/cli | |
- name: Build Quasar Electron App for Windows | |
run: quasar build -m electron | |
- name: Create ZIP Archive for Windows | |
run: | | |
cd dist/electron/Packaged | |
Get-ChildItem -Force # Check directory structure | |
Compress-Archive -Path QChatGPT-win32-x64 -DestinationPath QChatGPT-win32-x64.zip | |
- name: Upload Windows Build Artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: qchatgpt-windows | |
path: dist/electron/Packaged/QChatGPT-win32-x64.zip | |
build-macos: | |
runs-on: macos-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '20.x' | |
- name: Install dependencies | |
run: npm install | |
- name: Install Quasar CLI | |
run: npm install -g @quasar/cli | |
- name: Build Quasar Electron App for MacOS | |
run: quasar build -m electron | |
- name: Create ZIP Archive for MacOS | |
run: | | |
cd dist/electron/Packaged | |
ls -la # Check directory structure | |
zip -r QChatGPT-darwin-arm64.zip QChatGPT-darwin-arm64 | |
- name: Upload MacOS Build Artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: qchatgpt-macos | |
path: dist/electron/Packaged/QChatGPT-darwin-arm64.zip | |
build-android: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '20.x' | |
- name: Install dependencies | |
run: npm install | |
- name: Install Quasar CLI | |
run: npm install -g @quasar/cli | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: '17' | |
- name: Set up Android SDK | |
uses: android-actions/setup-android@v2 | |
with: | |
api-level: 35 | |
build-tools: 35.0.0 | |
- name: Build Quasar Capacitor App for Android | |
run: quasar build -m capacitor -T android --skip-pkg | |
- name: Create APK for Android | |
run: | | |
cd src-capacitor/android | |
chmod +x ./gradlew | |
./gradlew assembleDebug | |
- name: Rename APK and create zip | |
run: | | |
cd src-capacitor/android/app/build/outputs/apk/debug | |
mv app-debug.apk QChatGPT.apk | |
zip QChatGPT-android.zip QChatGPT.apk | |
- name: Upload Android Build Artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: qchatgpt-android | |
path: src-capacitor/android/app/build/outputs/apk/debug/QChatGPT-android.zip | |
publish: | |
name: Publish Version | |
needs: [build-linux, build-windows, build-macos, build-android] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download Linux Build Artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: qchatgpt-linux | |
- name: Download Windows Build Artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: qchatgpt-windows | |
- name: Download MacOS Build Artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: qchatgpt-macos | |
- name: Download Android Build Artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: qchatgpt-android | |
- name: Get version from package.json | |
id: get_version | |
run: echo "VERSION=$(jq -r .version package.json)" >> $GITHUB_ENV | |
- name: Create Version | |
env: | |
GH_TOKEN: ${{ secrets.PAT_TOKEN }} | |
run: | | |
ls -la # Check directory structure | |
gh release create "v${{ env.VERSION }}" QChatGPT-linux-x64.zip QChatGPT-win32-x64.zip QChatGPT-darwin-arm64.zip QChatGPT-android.zip -t "Version ${{ env.VERSION }}" -n "Version notes for ${{ env.VERSION }}" --target main |