Move EF publisher github to ux package #40
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: Wingman App Build and Release | |
defaults: | |
run: | |
shell: bash | |
on: | |
push: | |
branches: | |
- develop | |
tags: | |
- 'v[0-9]+.[0-9]+.[0-9]+*' | |
jobs: | |
build-and-release: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
# fail-fast: false | |
matrix: | |
# os: [windows-latest, ubuntu-latest, macos-latest] | |
os: [windows-latest, macos-latest] | |
include: | |
- os: windows-latest | |
platform: windows | |
timeout-minutes: 60 | |
# - os: ubuntu-latest | |
# platform: linux | |
# timeout-minutes: 60 | |
- os: macos-latest | |
platform: macos | |
runs-on: macos-14 | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
submodules: recursive | |
# https://github.com/electron/forge/issues/2807 | |
- name: Install Python 3 Setuptools on macOS | |
if: matrix.os == 'macos-latest' | |
run: python3 -m pip install setuptools | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '20' # Specify the Node.js version to use, ensure it matches your project requirements | |
- uses: actions/github-script@v6 | |
with: | |
script: | | |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); | |
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); | |
- name: Set VCPKG Environment Variables | |
run: | | |
echo "VCPKG_ROOT=${VCPKG_INSTALLATION_ROOT}" >> $GITHUB_ENV | |
- name: Install PowerShell macOS | |
if: matrix.os == 'macos-latest' | |
run: | | |
architecture=$(uname -m) | |
# Download the powershell '.tar.gz' archive | |
if [ "$architecture" = "x86_64" ]; then | |
curl -L -o /tmp/powershell.tar.gz https://github.com/PowerShell/PowerShell/releases/download/v7.4.1/powershell-7.4.1-osx-x64.tar.gz | |
elif [ "$architecture" = "arm64" ]; then | |
curl -L -o /tmp/powershell.tar.gz https://github.com/PowerShell/PowerShell/releases/download/v7.4.1/powershell-7.4.1-osx-arm64.tar.gz | |
fi | |
# Create the target folder where powershell is placed | |
sudo mkdir -p /usr/local/microsoft/powershell/7 | |
# Expand powershell to the target folder | |
sudo tar zxf /tmp/powershell.tar.gz -C /usr/local/microsoft/powershell/7 | |
# Set execute permissions | |
sudo chmod +x /usr/local/microsoft/powershell/7/pwsh | |
# Create the symbolic link that points to pwsh | |
sudo ln -sf /usr/local/microsoft/powershell/7/pwsh /usr/local/bin/pwsh | |
- name: Install Build Dependencies | |
shell: pwsh | |
run: .\build-setup.ps1 -BuildPlatform ${{ matrix.platform }} | |
- name: Cache npm dependencies | |
uses: actions/cache@v2 | |
with: | |
path: '~/.npm' | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Build, Package and Release to GitHub | |
shell: pwsh | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: .\build.ps1 -BuildPlatform ${{ matrix.platform }} | |
- name: Extract package.json Version | |
run: | | |
package_version=$(jq -r '.version' ./ux/package.json) | |
echo "PACKAGE_VERSION=$package_version" >> $GITHUB_ENV | |
# - name: Define Artifact Path for Windows and Linux | |
# if: matrix.os != 'macos-latest' | |
# run: | | |
# platform="${{ matrix.platform }}" | |
# version="${{ env.PACKAGE_VERSION }}" | |
# artifactPath="" | |
# artifactZipPath="" | |
# if [ "$platform" = "windows" ]; then | |
# artifactPath="out/make/squirrel.windows/x64/wingman-$version Setup.exe" | |
# artifactZipPath="out/make/zip/win32/x64/wingman-win32-x64-$version.zip" | |
# elif [ "$platform" = "linux" ]; then | |
# artifactPath="out/make/wingman-linux-x64-$version.deb" | |
# artifactZipPath="out/make/zip/linux/x64/wingman-linux-x64-$version.zip" | |
# fi | |
# echo "ARTIFACT_PATH=$artifactPath" >> $GITHUB_ENV | |
# echo "ARTIFACT_ZIP_PATH=$artifactZipPath" >> $GITHUB_ENV | |
# - name: Define Artifact Paths for macOS | |
# if: matrix.os == 'macos-latest' | |
# run: | | |
# version="${{ env.PACKAGE_VERSION }}" | |
# arch="x64" | |
# echo "ARTIFACT_PATH_INTEL=out/make/wingman-$arch-$version.dmg" >> $GITHUB_ENV | |
# echo "ARTIFACT_PATH_INTEL_ZIP=out/make/zip/darwin/$arch/wingman-$arch-$version.dmg" >> $GITHUB_ENV | |
# arch="arm64" | |
# echo "ARTIFACT_PATH_APPLE_SILICON=out/make/wingman-$arch-$version.dmg" >> $GITHUB_ENV | |
# echo "ARTIFACT_PATH_APPLE_SILICON_ZIP=out/make/zip/darwin/$arch/wingman-darwin-$arch-$version.dmg" >> $GITHUB_ENV | |
# - name: Upload Installer Artifact for Intel macOS | |
# if: matrix.os == 'macos-latest' | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: wingman-macos-intel-${{ env.PACKAGE_VERSION }} | |
# path: ${{ env.ARTIFACT_PATH_INTEL }} | |
# - name: Upload Zip Artifact for Intel macOS | |
# if: matrix.os == 'macos-latest' | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: wingman-macos-intel-zip-${{ env.PACKAGE_VERSION }} | |
# path: ${{ env.ARTIFACT_PATH_INTEL_ZIP }} | |
# - name: Upload Installer Artifact for Apple Silicon macOS | |
# if: matrix.os == 'macos-latest' | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: wingman-macos-apple-silicon-${{ env.PACKAGE_VERSION }} | |
# path: ${{ env.ARTIFACT_PATH_APPLE_SILICON }} | |
# - name: Upload Zip Artifact for Apple Silicon macOS | |
# if: matrix.os == 'macos-latest' | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: wingman-macos-apple-silicon-${{ env.PACKAGE_VERSION }} | |
# path: ${{ env.ARTIFACT_PATH_APPLE_SILICON_ZIP }} | |
# - name: Upload Installer Artifact for Windows and Linux | |
# if: matrix.os != 'macos-latest' | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: wingman-${{ matrix.platform }}-${{ env.PACKAGE_VERSION }} | |
# path: ${{ env.ARTIFACT_PATH }} | |
# - name: Upload Zip Artifact for Windows and Linux | |
# if: matrix.os != 'macos-latest' | |
# uses: actions/upload-artifact@v2 | |
# with: | |
# name: wingman-zip-${{ matrix.platform }}-${{ env.PACKAGE_VERSION }} | |
# path: ${{ env.ARTIFACT_PATH_ZIP }} | |
- name: Create and Push Git Tag | |
if: github.ref == 'refs/heads/develop' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
git config user.name "github-actions" | |
git config user.email "github-actions@github.com" | |
git tag -a "v${{ env.PACKAGE_VERSION }}" -m "Release version ${{ env.PACKAGE_VERSION }}" | |
git push origin "v${{ env.PACKAGE_VERSION }}" |