Merge pull request #2336 from itsmdasifraza/feat/2266/fix-failed-navi⦠#613
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: Development release | |
on: | |
push: | |
branches: | |
- development | |
workflow_dispatch: | |
env: | |
VITE_API_URL: ${{ vars.VITE_API_URL_DEV }} | |
VITE_MIX_PANEL_TOKEN: ${{ vars.VITE_MIX_PANEL_TOKEN }} | |
VITE_ENABLE_MIX_PANEL: ${{ vars.VITE_ENABLE_MIX_PANEL_DEV }} | |
VITE_API_TIMEOUT: ${{ vars.VITE_API_TIMEOUT }} | |
VITE_SPARROW_SUPPORT_EMAIL: ${{ vars.VITE_SPARROW_SUPPORT_EMAIL }} | |
VITE_AUTH_URL: ${{ vars.VITE_AUTH_URL_DEV }} | |
VITE_SPARROW_GITHUB: ${{ vars.VITE_SPARROW_GITHUB }} | |
VITE_SPARROW_DOWNLOAD_LINK: ${{ vars.VITE_SPARROW_DOWNLOAD_LINK }} | |
VITE_RELEASE_NOTES_PAT_TOKEN: ${{ secrets.VITE_RELEASE_NOTES_PAT_TOKEN }} | |
VITE_RELEASE_NOTES_API: ${{ vars.VITE_RELEASE_NOTES_API }} | |
VITE_AZURE_CDN_URL: ${{ vars.VITE_AZURE_CDN_URL }} | |
VITE_AZURE_INSIGHTS_CONNECTION_STRING: ${{ vars.VITE_AZURE_INSIGHTS_CONNECTION_STRING }} | |
VITE_CANNY_API: ${{ vars.VITE_CANNY_API }} | |
VITE_CANNY_URL: ${{ vars.VITE_CANNY_URL }} | |
VITE_BASE_URL: ${{ vars.VITE_BASE_URL }} | |
VITE_SPARROW_LINKEDIN: ${{ vars.VITE_SPARROW_LINKEDIN }} | |
VITE_WEB_SOCKET_IO_API_URL: ${{ vars.VITE_WEB_SOCKET_IO_API_URL }} | |
ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
CI: false | |
jobs: | |
release_win: | |
runs-on: windows-latest | |
environment: development | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Setup Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: "20.x" | |
- name: Install Windows SDK | |
run: Invoke-WebRequest -Uri https://aka.ms/winsdk/10/latest/SdkSetup.exe -OutFile $env:TEMP\SdkSetup.exe | |
shell: powershell | |
- name: Set up .NET Core | |
uses: actions/setup-dotnet@v1 | |
with: | |
dotnet-version: 3.1 | |
- name: Install Rust 1.82.0 | |
run: | | |
Invoke-WebRequest -Uri https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe -OutFile rustup-init.exe | |
.\rustup-init.exe -y | |
rustup install 1.82.0 | |
rustup default 1.82.0 | |
- name: Update updater endpoint in tauri.conf.json file | |
run: | | |
$content = Get-Content apps/@sparrow-desktop/src-tauri/tauri.conf.json -Raw | |
$newContent = $content -replace '"https://{{UPDATER_URL}}/updater/{{target}}/{{arch}}/{{current_version}}"', '"https://${{ secrets.UPDATER_ENDPOINT_DEV }}/updater/{{target}}/{{arch}}/{{current_version}}"' | |
Set-Content -Path apps/@sparrow-desktop/src-tauri/tauri.conf.json -Value $newContent | |
shell: pwsh | |
- name: Increase Yarn network timeout | |
run: yarn config set network-timeout 600000 | |
- name: Build Tauri App | |
run: | | |
yarn cache clean | |
npm install -g pnpm | |
yarn install | |
yarn desktop-build | |
# yarn tauri build --debug | |
env: | |
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} | |
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} | |
GITHUB_TOKEN: ${{ secrets.PR_GITHUB_TOKEN }} | |
- name: msi sig | |
run: Get-Content D:\a\sparrow-app\sparrow-app\apps\@sparrow-desktop\src-tauri\target\debug\bundle\msi\*.sig | |
- name: nsis sig | |
run: Get-Content D:\a\sparrow-app\sparrow-app\apps\@sparrow-desktop\src-tauri\target\debug\bundle\nsis\*.sig | |
- name: sign msi | |
run: | | |
$cert = New-SelfSignedCertificate -Subject "CN=Certificate" -CertStoreLocation "Cert:\LocalMachine\My" -KeyUsage DigitalSignature -Type CodeSigningCert -KeySpec Signature -NotAfter (Get-Date).AddDays(90) | |
$certPath = "Cert:\LocalMachine\My\$($cert.Thumbprint)" | |
$password = ConvertTo-SecureString -String "sparrow123" -Force -AsPlainText | |
Export-PfxCertificate -Cert $certPath -FilePath "D:\a\sparrow-app\sparrow-app\apps\@sparrow-desktop\src-tauri\target\debug\bundle\Certificate.pfx" -Password $password | |
& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86\SignTool.exe" sign /f "D:\a\sparrow-app\sparrow-app\apps\@sparrow-desktop\src-tauri\target\debug\bundle\Certificate.pfx" /p sparrow123 /tr http://timestamp.digicert.com /td sha256 /fd sha256 /v "D:\a\sparrow-app\sparrow-app\apps\@sparrow-desktop\src-tauri\target\debug\bundle\msi\*.msi" | |
- name: Install AWS CLI | |
uses: chrislennon/action-aws-cli@v1.1 | |
with: | |
version: latest | |
aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
- name: Upload files to S3 | |
run: | | |
aws s3 sync D:\a\sparrow-app\sparrow-app\apps\@sparrow-desktop\src-tauri\target\debug\bundle\msi s3://sparrow-release-assests-dev --exclude "*" --include "*.zip" --include "*.msi" | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
release_macos: | |
runs-on: macos-latest | |
environment: development | |
needs: release_win | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
- name: Install Rust 1.82.0 | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
rustup install 1.82.0 | |
rustup default 1.82.0 | |
rustup target add x86_64-apple-darwin | |
- name: Sync node version and setup cache | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "20.8" | |
- name: Update updater endpoint in tauri.conf.json file | |
run: | | |
content=$(<apps/@sparrow-desktop/src-tauri/tauri.conf.json) | |
newContent=$(echo "$content" | sed 's|"https://{{UPDATER_URL}}/updater/{{target}}/{{arch}}/{{current_version}}"|"https://${{ secrets.UPDATER_ENDPOINT_DEV }}/updater/{{target}}/{{arch}}/{{current_version}}"|g') | |
echo "$newContent" > apps/@sparrow-desktop/src-tauri/tauri.conf.json | |
shell: bash | |
- name: Increase Yarn network timeout | |
run: yarn config set network-timeout 600000 | |
- name: Build Tauri App | |
run: | | |
yarn cache clean | |
yarn install | |
yarn desktop-build | |
env: | |
APPLE_SIGNING_IDENTITY: "${{ secrets.APPLE_SIGNING_IDENTITY }}" | |
APPLE_CERTIFICATE: "${{ secrets.APPLE_CERTIFICATE }}" | |
APPLE_CERTIFICATE_PASSWORD: "${{ secrets.APPLE_CERTIFICATE_PASSWORD }}" | |
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} | |
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }} | |
GITHUB_TOKEN: ${{ secrets.PR_GITHUB_TOKEN }} | |
APPLE_ID: ${{ secrets.APPLE_ID }} | |
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} | |
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
CI: false | |
- name: file content | |
run: | | |
cat /Users/runner/work/sparrow-app/sparrow-app/apps/@sparrow-desktop/src-tauri/target/debug/bundle/macos/*.sig | |
- name: Install AWS CLI | |
run: | | |
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" | |
sudo installer -pkg AWSCLIV2.pkg -target / | |
aws --version | |
- name: Upload & download File to S3 | |
run: | | |
aws s3 cp /Users/runner/work/sparrow-app/sparrow-app/apps/@sparrow-desktop/src-tauri/target/debug/bundle/macos s3://sparrow-release-assests-dev --recursive --exclude "*" --include "*.gz" | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
- name: Download MSI files from S3 bucket | |
run: | | |
mkdir msi_files | |
aws s3 cp s3://sparrow-release-assests-dev/ msi_files/ --recursive --exclude "*" --include "*.msi" | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
- name: Install App Center CLI | |
run: | | |
npm install -g appcenter-cli@latest | |
- name: Get Branch Name | |
id: pr_branch | |
run: | | |
if [[ -n "${{ github.head_ref }}" ]]; then | |
echo "::set-output name=branch::${{ github.head_ref }}" | |
else | |
echo "::set-output name=branch::${{ github.ref_name }}" | |
fi | |
- name: Upload to App Center | |
run: | | |
appcenter login --token ${{ secrets.APPCENTER_API_TOKEN }} | |
branch_name="${{ steps.pr_branch.outputs.branch }}" | |
echo "Branch Name: $branch_name" | |
appcenter distribute release -f /Users/runner/work/sparrow-app/sparrow-app/apps/@sparrow-desktop/src-tauri/target/debug/bundle/dmg/*.dmg -g Collaborators --app techdome/Sparrow-1 --build-version test-${branch_name} --build-number ${{ github.run_number }} | |
appcenter distribute release -f msi_files/*.msi -g Collaborators --app techdome/Sparrow --build-version test-${branch_name} --build-number ${{ github.run_number }} | |
- name: status check and upload | |
uses: neonidian/teams-notify-build-status@v3 | |
if: always() | |
with: | |
webhookUrl: | | |
${{ secrets.TEAMS_INCOMING_WEBHOOK_URL }} | |
message: | | |
π **Build Status Update** π | |
The workflow (sparrow-app for **Mac**) has completed with status: **${{ job.status }}**. | |
π Check it out latest release here [AppCenter](https://appcenter.ms/users/techdome/apps/Sparrow-mac)! | |
titleBackgroundColor: ${{ job.status }} | |
env: | |
SHOULD_DISPLAY_VIEW_COMMIT_BUTTON: true | |
- name: status check and upload | |
uses: neonidian/teams-notify-build-status@v3 | |
if: always() | |
with: | |
webhookUrl: | | |
${{ secrets.TEAMS_INCOMING_WEBHOOK_URL }} | |
message: | | |
π **Build Status Update** π | |
The workflow (sparrow-app for windows) has completed with status: **${{ job.status }}**. | |
π Check it out latest release here [AppCenter](https://appcenter.ms/users/techdome/apps/Sparrow)! | |
titleBackgroundColor: ${{ job.status }} | |
env: | |
SHOULD_DISPLAY_VIEW_COMMIT_BUTTON: true |