add teamid export step #112
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: Build | |
on: | |
push: | |
branches: [ master ] | |
tags: | |
- 'v*' | |
pull_request: | |
branches: [ master ] | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest-large, windows-latest, macos-latest] | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '18.x' | |
cache: 'npm' | |
- name: Install dependencies | |
run: npm ci | |
- name: Build React app | |
env: | |
CI: false | |
run: npm run react-build | |
# --------------------------- | |
# macOS Build | |
# --------------------------- | |
- name: Debug environment (macOS) | |
if: matrix.os == 'macos-latest' | |
run: | | |
echo "===== DEBUGGING ENVIRONMENT =====" | |
echo "TEAM_ID: $TEAM_ID" | |
echo "APPLE_API_KEY_ID: $APPLE_API_KEY_ID" | |
echo "APPLE_API_ISSUER: $APPLE_API_ISSUER" | |
# Omit or mask APPLE_API_KEY if it’s sensitive | |
echo "Secrets below (env):" | |
env | |
echo "=================================" | |
- name: Build Electron app (macOS) | |
if: matrix.os == 'macos-latest' | |
env: | |
# Turn on electron-builder debug logs | |
DEBUG: electron-builder | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# macOS Notarization environment variables | |
TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }} | |
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }} | |
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }} | |
# Code signing certificate & password | |
CSC_LINK: ${{ secrets.MACOS_CERTIFICATE }} | |
CSC_KEY_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} | |
run: | | |
# Show electron-builder version | |
npx electron-builder --version | |
# Build without publishing (only building, no release upload) | |
npx electron-builder --publish=never | |
# --------------------------- | |
# Windows Build | |
# --------------------------- | |
- name: Build Electron app (Windows) | |
if: matrix.os == 'windows-latest' | |
env: | |
DEBUG: electron-builder | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: npm run electron-build | |
# --------------------------- | |
# Linux Build | |
# --------------------------- | |
- name: Build Electron app (Linux) | |
if: matrix.os == 'ubuntu-latest-large' | |
env: | |
DEBUG: electron-builder | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
npx electron-builder --version | |
ls -la | |
npx electron-builder --linux AppImage --x64 | |
ls -la dist/ | |
# --------------------------- | |
# Upload Artifacts | |
# --------------------------- | |
- name: Check Linux build output | |
if: matrix.os == 'ubuntu-latest-large' | |
run: | | |
echo "Checking build output..." | |
if [ ! -d "dist" ]; then | |
echo "Error: dist directory not found" | |
exit 1 | |
fi | |
find dist -type f -name "*.AppImage" || echo "No AppImage files found in dist/" | |
- name: Upload Linux artifacts | |
if: matrix.os == 'ubuntu-latest-large' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: linux-build | |
path: dist/*.AppImage | |
if-no-files-found: error | |
- name: Upload Windows artifacts | |
if: matrix.os == 'windows-latest' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: windows-build | |
path: dist/*.exe | |
if-no-files-found: error | |
- name: Upload macOS artifacts | |
if: matrix.os == 'macos-latest' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: macos-build | |
path: dist/*.dmg | |
if-no-files-found: error | |
# ---------------------------------- | |
# Upload to your server step | |
# ---------------------------------- | |
upload-to-releases: | |
name: Upload to releases.drivechain.info | |
runs-on: ubuntu-latest | |
needs: [build] | |
if: github.event_name == 'push' && github.repository_owner == 'LayerTwo-Labs' | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
pattern: "*-build" | |
path: artifacts | |
- name: List downloaded files | |
run: | | |
echo "Artifacts directory contents:" | |
ls -la artifacts | |
echo "Linux build directory contents:" | |
ls -la artifacts/linux-build | |
echo "Windows build directory contents:" | |
ls -la artifacts/windows-build | |
echo "macOS build directory contents:" | |
ls -la artifacts/macos-build | |
- name: Process artifacts | |
run: | | |
# (Linux) rename AppImage | |
cd artifacts/linux-build | |
mv *.AppImage ../../drivechain-launcher-latest-x86_64-linux.AppImage | |
cd ../.. | |
# (Windows) zip up the .exe | |
cd artifacts/windows-build | |
EXE_FILE=$(ls Drivechain-Launcher-Setup-*.exe 2>/dev/null || echo "") | |
if [ -z "$EXE_FILE" ]; then | |
echo "Error: No Windows exe file found" | |
exit 1 | |
fi | |
zip ../../drivechain-launcher-latest-windows.zip "$EXE_FILE" | |
cd ../.. | |
# (macOS) rename the DMGs | |
cd artifacts/macos-build | |
ARM64_DMG=$(ls *-arm64.dmg 2>/dev/null || echo "") | |
if [ -z "$ARM64_DMG" ]; then | |
echo "Error: No arm64 DMG file found" | |
exit 1 | |
fi | |
mv "$ARM64_DMG" ../../drivechain-launcher-latest-osx-arm64.dmg | |
X64_DMG=$(ls *-x64.dmg 2>/dev/null || echo "") | |
if [ -z "$X64_DMG" ]; then | |
echo "Error: No x64 DMG file found" | |
exit 1 | |
fi | |
mv "$X64_DMG" ../../drivechain-launcher-latest-osx-x64.dmg | |
cd ../.. | |
echo "Final files:" | |
ls -la drivechain-launcher-* | |
- name: Verify files exist | |
run: | | |
if [ ! -f "drivechain-launcher-latest-x86_64-linux.AppImage" ]; then | |
echo "Error: Linux AppImage file not found" | |
exit 1 | |
fi | |
if [ ! -f "drivechain-launcher-latest-windows.zip" ]; then | |
echo "Error: Windows zip file not found" | |
exit 1 | |
fi | |
if [ ! -f "drivechain-launcher-latest-osx-arm64.dmg" ]; then | |
echo "Error: macOS arm64 DMG file not found" | |
exit 1 | |
fi | |
if [ ! -f "drivechain-launcher-latest-osx-x64.dmg" ]; then | |
echo "Error: macOS x64 DMG file not found" | |
exit 1 | |
fi | |
- name: Upload to releases.drivechain.info | |
uses: cross-the-world/ssh-scp-ssh-pipelines@latest | |
with: | |
host: 45.33.96.47 | |
user: root | |
pass: ${{ secrets.RELEASES_SERVER_PW }} | |
port: 22 | |
scp: | | |
'drivechain-launcher-latest-x86_64-linux.AppImage' => '/var/www/html/' | |
'drivechain-launcher-latest-windows.zip' => '/var/www/html/' | |
'drivechain-launcher-latest-osx-arm64.dmg' => '/var/www/html/' | |
'drivechain-launcher-latest-osx-x64.dmg' => '/var/www/html/' |