feat: Temp #22
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: | |
workflow_dispatch: | |
pull_request: | |
jobs: | |
ios: | |
name: Apple iOS | |
runs-on: macos-14 | |
steps: | |
- script: brew install --cask xamarin-ios | |
displayName: 'Install Xamarin.iOS package using Homebrew' | |
- script: brew install --cask xamarin-android | |
displayName: 'Install Xamarin.Android package using Homebrew' | |
- script: curl $(vsForMacDmgUrl) -o /tmp/vsformac.dmg | |
displayName: 'Download Visual Studio for Mac' | |
- script: hdiutil attach /tmp/vsformac.dmg | |
displayName: 'Mount Visual Studio for Mac dmg' | |
- script: cp -R /Volumes/Visual\ Studio/Visual\ Studio.app/Contents/MonoBundle/MSBuild/Current/bin /tmp/msbuild | |
displayName: 'Extract MSBuild' | |
- name: Setup NuGet | |
uses: nuget/setup-nuget@296fd3ccf8528660c91106efefe2364482f86d6f # v1.2.0 | |
with: | |
nuget-version: 6.4.0 | |
- name: Print environment | |
run: | | |
nuget help | grep Version | |
msbuild -version | |
dotnet --info | |
echo "GitHub ref: $GITHUB_REF" | |
echo "GitHub event: $GITHUB_EVENT" | |
- name: Checkout repo | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
with: | |
submodules: 'true' | |
- name: Set up Keychain | |
env: | |
KEYCHAIN_PASSWORD: ${{ secrets.IOS_KEYCHAIN_PASSWORD }} | |
DIST_CERT_PASSWORD: ${{ secrets.IOS_DIST_CERT_P12_PASSWORD }} | |
run: | | |
mkdir -p $HOME/secrets | |
echo ${{ secrets.IOS_DIST_CERT_P12_BASE64 }} | base64 --decode > $HOME/secrets/iphone-distribution-cert.p12 | |
echo ${{ secrets.IOS_AUTOFILL_PROFILE_BASE_64 }} | base64 --decode > $HOME/secrets/Cozy_Pass_Autofill_Distribution_Profile.mobileprovision | |
echo ${{ secrets.IOS_APP_PROFILE_BASE_64 }} | base64 --decode > $HOME/secrets/Cozy_Pass_Distribution_Profile.mobileprovision | |
echo ${{ secrets.IOS_EXTENSION_PROFILE_BASE_64 }} | base64 --decode > $HOME/secrets/Cozy_Pass_Find_Login_Action_Distribution_Profile.mobileprovision | |
echo ${{ secrets.IOS_SHARE_EXTENSION_PROFILE_BASE_64 }} | base64 --decode > $HOME/secrets/Cozy_Pass_Share_Extension_Distribution_Profile.mobileprovision | |
security create-keychain -p $KEYCHAIN_PASSWORD build.keychain | |
security default-keychain -s build.keychain | |
security unlock-keychain -p $KEYCHAIN_PASSWORD build.keychain | |
security set-keychain-settings -lut 1200 build.keychain | |
security import ~/secrets/iphone-distribution-cert.p12 -k build.keychain -P $DIST_CERT_PASSWORD \ | |
-T /usr/bin/codesign -T /usr/bin/security | |
security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k $KEYCHAIN_PASSWORD build.keychain | |
- name: Set up provisioning profiles | |
run: | | |
AUTOFILL_PROFILE_PATH=$HOME/secrets/Cozy_Pass_Autofill_Distribution_Profile.mobileprovision | |
BITWARDEN_PROFILE_PATH=$HOME/secrets/Cozy_Pass_Distribution_Profile.mobileprovision | |
EXTENSION_PROFILE_PATH=$HOME/secrets/Cozy_Pass_Find_Login_Action_Distribution_Profile.mobileprovision | |
SHARE_EXTENSION_PROFILE_PATH=$HOME/secrets/Cozy_Pass_Share_Extension_Distribution_Profile.mobileprovision | |
PROFILES_DIR_PATH=$HOME/Library/MobileDevice/Provisioning\ Profiles | |
mkdir -p "$PROFILES_DIR_PATH" | |
AUTOFILL_UUID=$(grep UUID -A1 -a $AUTOFILL_PROFILE_PATH | grep -io "[-A-F0-9]\{36\}") | |
cp $AUTOFILL_PROFILE_PATH "$PROFILES_DIR_PATH/$AUTOFILL_UUID.mobileprovision" | |
BITWARDEN_UUID=$(grep UUID -A1 -a $BITWARDEN_PROFILE_PATH | grep -io "[-A-F0-9]\{36\}") | |
cp $BITWARDEN_PROFILE_PATH "$PROFILES_DIR_PATH/$BITWARDEN_UUID.mobileprovision" | |
EXTENSION_UUID=$(grep UUID -A1 -a $EXTENSION_PROFILE_PATH | grep -io "[-A-F0-9]\{36\}") | |
cp $EXTENSION_PROFILE_PATH "$PROFILES_DIR_PATH/$EXTENSION_UUID.mobileprovision" | |
SHARE_EXTENSION_UUID=$(grep UUID -A1 -a $SHARE_EXTENSION_PROFILE_PATH | grep -io "[-A-F0-9]\{36\}") | |
cp $SHARE_EXTENSION_PROFILE_PATH "$PROFILES_DIR_PATH/$SHARE_EXTENSION_UUID.mobileprovision" | |
- name: Restore packages | |
run: nuget restore | |
- name: Archive Build for App Store | |
run: | | |
$configuration = "AppStore"; | |
$platform = "iPhone"; | |
Write-Output "########################################" | |
Write-Output "##### Archive $configuration Configuration for $platform Platform" | |
Write-Output "########################################" | |
msbuild "$($env:GITHUB_WORKSPACE + "/src/iOS/iOS.csproj")" "/p:Platform=$platform" ` | |
"/p:Configuration=$configuration" "/p:ArchiveOnBuild=true" "/t:`"Build`"" | |
Write-Output "########################################" | |
Write-Output "##### Done" | |
Write-Output "########################################" | |
shell: pwsh | |
- name: Export .ipa for App Store | |
run: | | |
EXPORT_OPTIONS_PATH="./.github/resources/export-options-app-store.plist" | |
ARCHIVE_PATH="$HOME/Library/Developer/Xcode/Archives/*/*.xcarchive" | |
EXPORT_PATH="./bitwarden-export" | |
xcodebuild -exportArchive -archivePath $ARCHIVE_PATH -exportPath $EXPORT_PATH \ | |
-exportOptionsPlist $EXPORT_OPTIONS_PATH | |
ls $EXPORT_PATH | |
- name: Upload App Store .ipa | |
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 | |
with: | |
name: Bitwarden iOS | |
path: | | |
./bitwarden-export/*.ipa | |
if-no-files-found: error | |
# - name: Deploy to App Store | |
# if: | | |
# (github.ref == 'refs/heads/main' | |
# && needs.setup.outputs.rc_branch_exists == 0 | |
# && needs.setup.outputs.hotfix_branch_exists == 0) | |
# || (github.ref == 'refs/heads/rc' && needs.setup.outputs.hotfix_branch_exists == 0) | |
# || github.ref == 'refs/heads/hotfix-rc' | |
# env: | |
# APPLE_ID_USERNAME: ${{ secrets.APPLE_ID_USERNAME }} | |
# APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} | |
# run: | | |
# xcrun altool --upload-app --type ios --file "./bitwarden-export/Bitwarden.ipa" \ | |
# --username "$APPLE_ID_USERNAME" --password "$APPLE_ID_PASSWORD" | |