Skip to content

fix error

fix error #135

Workflow file for this run

name: Deploy React App with GitHub Pages
on:
push:
branches: ["main"]
workflow_dispatch:
permissions:
contents: write
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Install dependencies
run: npm install
- name: Build app
run: npm run build
- name: Upload artifact
uses: actions/upload-pages-artifact@v2
with:
name: github-pages
path: ./build
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: github-pages
- name: Deploy to GitHub Pages
uses: actions/deploy-pages@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
build-electron-win:
needs: deploy
runs-on: ubuntu-latest
strategy:
matrix:
platform: [win]
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install dependencies
run: npm install
- name: Install Wine
run: |
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y wine64 wine32
- name: Build
run: npm run build
- name: Build Electron App
run: |
case ${{ matrix.platform }} in
win) GH_TOKEN=${{ secrets.GITHUB_TOKEN }} npm run dist -- --win;;
mac) GH_TOKEN=${{ secrets.GITHUB_TOKEN }} npm run dist -- --mac ;;
linux) GH_TOKEN=${{ secrets.GITHUB_TOKEN }} npm run dist -- --linux AppImage ;;
esac
- name: Archive Build Outputs
run: |
mkdir -p artifacts
case ${{ matrix.platform }} in
win) mv dist/*.exe artifacts/ ;;
mac) mv dist/*.dmg artifacts/ ;;
linux) mv dist/*.AppImage artifacts/ ;;
esac
- name: Upload Build Outputs
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.platform }}-builds
path: artifacts
- name: Extract version from package.json
id: extract_version
run: |
VERSION=$(node -p "require('./package.json').version")
echo "Version extracted: $VERSION"
echo "::set-output name=version::$VERSION"
echo "VERSION=$VERSION" >> $GITHUB_ENV
build-tauri:
needs: deploy
runs-on: ubuntu-latest
strategy:
matrix:
platform: [windows-latest]
steps:
# Step 1: Checkout Code
- name: Checkout code
uses: actions/checkout@v3
# Step 2: Set up Rust
- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
components: rustfmt, clippy, llvm-tools # Added llvm-tools as an example
- name: Install GDK and dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev
# Step 3: Install and build
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
- name: Build the application
run: |
cargo build --release
- name: Install Tauri dependencies
run: |
# Install dependencies for building Tauri apps
cargo install tauri-cli
# Step 4: Build Tauri App
- name: Build Tauri App
run: cargo tauri build
# Step 5: Archive Build Artifacts
- name: Archive artifacts
uses: actions/upload-artifact@v3
with:
name: app-windows-msi
path: src-tauri/target/release/bundle/msi/*
- name: Archive artifacts
uses: actions/upload-artifact@v3
with:
name: app-windows-nsis
path: src-tauri/target/release/bundle/nsis/*
build-electron:
needs: build-electron-win
runs-on: macos-latest
strategy:
matrix:
platform: [mac, linux]
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
- name: Build Electron App
run: |
case ${{ matrix.platform }} in
win) GH_TOKEN=${{ secrets.GITHUB_TOKEN }} npm run dist -- --win;;
mac) GH_TOKEN=${{ secrets.GITHUB_TOKEN }} npm run dist -- --mac ;;
linux) GH_TOKEN=${{ secrets.GITHUB_TOKEN }} npm run dist -- --linux AppImage ;;
esac
- name: Archive Build Outputs
run: |
mkdir -p artifacts
case ${{ matrix.platform }} in
win) mv dist/*.exe artifacts/ ;;
mac) mv dist/*.dmg artifacts/ ;;
linux) mv dist/*.AppImage artifacts/ ;;
esac
- name: Upload Build Outputs
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.platform }}-builds
path: artifacts
release:
needs: [build-electron, build-tauri]
runs-on: ubuntu-latest
steps:
# Electron
- name: Download win Artifacts
uses: actions/download-artifact@v3
with:
name: win-builds
- name: Download mac Artifacts
uses: actions/download-artifact@v3
with:
name: mac-builds
- name: Download linux Artifacts
uses: actions/download-artifact@v3
with:
name: linux-builds
# Tauri
- name: Download Tauri Windows Artifacts
uses: actions/download-artifact@v3
with:
name: app-windows-msi
- name: Download Tauri Windows Artifacts
uses: actions/download-artifact@v3
with:
name: app-windows-nsis
# Create a new GitHub release
- name: Create GitHub Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ env.VERSION }}
with:
tag_name: ${{ github.ref_name }}-${{ github.run_id }}
release_name: Release New Version ${{ env.VERSION }}
draft: false
prerelease: false
# Upload all artifacts to the release
- name: Upload Release Assets
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ env.VERSION }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: artifacts/*.*
asset_name: ${{ github.ref_name }}-build-${{ matrix.platform }}
asset_content_type: application/octet-stream
# - name: Find All Files Matching VERSION
# id: find_files
# run: |
# VERSION=${{ env.VERSION }}
# files=($(ls ./*${VERSION}* 2>/dev/null || echo ""))
# if [ ${#files[@]} -eq 0 ]; then
# echo "Error: No files found matching VERSION ${VERSION}"
# exit 1
# fi
# echo "Found files: ${files[@]}"
# file_list=$(IFS=','; echo "${files[*]}")
# echo "file_list=$file_list" >> $GITHUB_ENV
# - name: Upload Release Assets
# run: |
# IFS=',' read -r -a file_array <<< "${{ env.file_list }}"
# for file in "${file_array[@]}"; do
# echo "Uploading $file..."
# curl -XPOST \
# -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
# -H "Content-Type: application/octet-stream" \
# --data-binary @$file \
# "https://uploads.github.com/repos/iDataVisualizationLab/TxDOT/releases/${{ steps.create_release.outputs.id }}/assets?name=$(basename $file)"
# done
# env:
# file_list: ${{ env.file_list }}