From db68b4b6c722cc85f5b910af058f7a8edcf2bc97 Mon Sep 17 00:00:00 2001 From: TwanLuttik Date: Mon, 12 Aug 2024 15:16:32 -0700 Subject: [PATCH 1/2] windows build action fix --- .github/workflows/build-and-deploy.yml | 122 ++++++++++++------------- 1 file changed, 58 insertions(+), 64 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 178f2bd..f59e7fe 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -9,7 +9,7 @@ on: # Define the jobs to be run jobs: - # Define the build job + # Define the build job for macOS build: # Specify the runner environment runs-on: macos-latest @@ -64,11 +64,10 @@ jobs: uses: actions/upload-artifact@v3 with: name: macos-silicon - # The current path is very specific and might need adjustments with any changes in the file name or structure. A more generalized path (e.g., src-tauri/target/release/bundle/dmg/*.dmg) would be preferable as it's more flexible and resilient to such changes. path: src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/*.dmg - if-no-files-found: error # or 'warn' or 'ignore' + if-no-files-found: error - # Pre command for intell build + # Pre command for Intel build - name: rustup command run: rustup target add x86_64-apple-darwin @@ -81,9 +80,8 @@ jobs: uses: actions/upload-artifact@v3 with: name: macos-intel - # The current path is very specific and might need adjustments with any changes in the file name or structure. A more generalized path (e.g., src-tauri/target/release/bundle/dmg/*.dmg) would be preferable as it's more flexible and resilient to such changes. path: src-tauri/target/x86_64-apple-darwin/release/bundle/dmg/*.dmg - if-no-files-found: error # or 'warn' or 'ignore' + if-no-files-found: error # Build the project for MacOS Universal (both Silicon and Intel) - name: Build for MacOS Universal @@ -94,77 +92,82 @@ jobs: uses: actions/upload-artifact@v3 with: name: macos-universal - # The current path is very specific and might need adjustments with any changes in the file name or structure. A more generalized path (e.g., src-tauri/target/release/bundle/dmg/*.dmg) would be preferable as it's more flexible and resilient to such changes. path: src-tauri/target/universal-apple-darwin/release/bundle/dmg/*.dmg - if-no-files-found: error # or 'warn' or 'ignore' + if-no-files-found: error - # Placeholder steps for future implementation for Windows - # Build the project for Windows OS + # Define the build job for Windows + windows-build: + # Specify the runner environment + runs-on: windows-latest - - name: Pre windows script + # Define the steps to be performed in the Windows build job + steps: + # Add the target architecture for building Windows apps + - name: Add target architecture run: rustup target add x86_64-pc-windows-msvc - - + + # Check out the repository code to the runner + - name: Checkout code + uses: actions/checkout@v4 + + # Set up the required Node.js version + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: "20.x" + + # Set up the Rust toolchain + - name: Setup Rust + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: stable + override: true + + # Install pnpm (a fast, disk space efficient package manager) + - name: Install pnpm + run: npm install -g pnpm + + # Install project dependencies + - name: Install dependencies + run: pnpm i + + # Build the project for Windows - name: Build for Windows run: pnpm build:app:windows + # Archive Windows build artifacts - name: Archive Windows artifacts uses: actions/upload-artifact@v3 with: name: windows path: src-tauri/target/x86_64-pc-windows-msvc/release/bundle/nsis/*.exe - # Placeholder steps for future implementation for Linux - # Build the project for Linux OS - # - name: Build for Linux - # run: pnpm build:app:linux - - # - name: Archive Linux artifacts - # uses: actions/upload-artifact@v3 - # with: - # name: linux - # path: src-tauri/target/release/bundle/linux/* # Adjust this path if necessary - - # # List the contents of the build directory - # # For Debugging purposes - # - name: List files in the build directory - # run: | - # echo "Listing contents of macos-silicon directory" - # ls -la src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/ - # echo "Listing contents of macos-intel directory" - # ls -la src-tauri/target/x86_64-apple-darwin/release/bundle/dmg/ - # echo "Listing contents of macos-universal directory" - # ls -la src-tauri/target/universal-apple-darwin/release/bundle/dmg/ - - # Define the release job which depends on the build job + # Define the release job which depends on both the macOS and Windows build jobs release: - # Specify that this job needs the build job to complete successfully - needs: build + # Specify that this job needs the build and windows-build jobs to complete successfully + needs: [build, windows-build] # Specify the runner environment runs-on: ubuntu-latest # Define the steps to be performed in the release job steps: # Download the build artifacts from the build job - - name: Download artifacts + - name: Download macOS artifacts uses: actions/download-artifact@v3 + with: + name: macos-silicon + + - name: Download Windows artifacts + uses: actions/download-artifact@v3 + with: + name: windows - # # List the contents of the directories - # # For debugging purposes - # - name: List contents of directories - # run: | - # echo "Listing contents of macos-silicon directory" - # ls -la /home/runner/work/Ollama-Gui/Ollama-Gui/macos-silicon - # echo "Listing contents of macos-intel directory" - # ls -la /home/runner/work/Ollama-Gui/Ollama-Gui/macos-intel - # echo "Listing contents of macos-universal directory" - # ls -la /home/runner/work/Ollama-Gui/Ollama-Gui/macos-universal - - # Needs to be updated to use an adequate generated tag # Generate the tag - name: Generate tag id: generate_tag run: echo "::set-output name=tag::release-$(date +'%Y%m%d%H%M%S')" + # Create a new GitHub release with the generated tag - name: Create GitHub Release id: create_release @@ -180,7 +183,7 @@ jobs: # Get the file name and assign it to an object - name: Get Silicon file name id: get_filename_silicon - run: echo "::set-output name=filename::$(ls /home/runner/work/Ollama-Gui/Ollama-Gui/macos-silicon/*.dmg)" + run: echo "::set-output name=filename::$(ls src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/*.dmg)" # Print the file name - name: Echo the Silicon file name @@ -200,7 +203,7 @@ jobs: # Get the file name and assign it to an object - name: Get Intel file name id: get_filename_intel - run: echo "::set-output name=filename::$(ls /home/runner/work/Ollama-Gui/Ollama-Gui/macos-intel/*.dmg)" + run: echo "::set-output name=filename::$(ls src-tauri/target/x86_64-apple-darwin/release/bundle/dmg/*.dmg)" # Print the file name - name: Echo the Intel file name @@ -220,19 +223,10 @@ jobs: # Get the file name and assign it to an object - name: Get Universal file name id: get_filename_universal - run: echo "::set-output name=filename::$(ls /home/runner/work/Ollama-Gui/Ollama-Gui/macos-universal/*.dmg)" + run: echo "::set-output name=filename::$(ls src-tauri/target/universal-apple-darwin/release/bundle/dmg/*.dmg)" # Print the file name - name: Echo the Universal file name run: echo "The Universal file name is ${{ steps.get_filename_universal.outputs.filename }}" - # Upload the MacOS Universal build artifact to the GitHub release - - name: Upload Release Asset (MacOS Universal) - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: ${{ steps.get_filename_universal.outputs.filename }} # adjusted path - asset_name: Ollama-Gui-MacOS-Universal.dmg - asset_content_type: application/octet-stream + From b956c9d5e99bd4ba68e639074f4d447308bdd65c Mon Sep 17 00:00:00 2001 From: TwanLuttik Date: Mon, 12 Aug 2024 15:19:39 -0700 Subject: [PATCH 2/2] x --- .github/workflows/build-and-deploy.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index f59e7fe..5dbf5d5 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -3,6 +3,9 @@ name: Build and Deploy # Trigger the workflow on push to the specified branch on: + pull_request: + branches: + - main push: branches: - main