Testing in CI #34237
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: Screenshots | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened, labeled, unlabeled] | |
env: | |
S3_BUCKET: ${{ secrets.S3_BUCKET }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
CONFIGURE_ENCRYPTION_KEY: ${{ secrets.CONFIGURE_ENCRYPTION_KEY }} | |
jobs: | |
build: | |
name: Build Application | |
if: contains(github.event.pull_request.labels.*.name, 'generate screenshots') | |
runs-on: macos-latest | |
steps: | |
- name: "Check out Project" | |
uses: actions/checkout@v4 | |
- name: "Set up Ruby" | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- name: Restore CocoaPods Dependency Cache | |
id: restore-cocoapods-dependency-cache | |
uses: actions/cache@v4 | |
with: | |
path: Pods | |
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }} | |
- name: Install App Dependencies | |
run: bundle exec rake dependencies | |
- name: Compile the App | |
run: bundle exec fastlane build_screenshots | |
- name: Archive App | |
uses: actions/upload-artifact@v4 | |
with: | |
name: screenshot-app | |
path: fastlane/DerivedData/Build/Products/Debug-iphonesimulator/WooCommerce.app | |
- name: Archive Runner | |
uses: actions/upload-artifact@v4 | |
with: | |
name: screenshot-runner | |
path: fastlane/DerivedData/Build/Products/Debug-iphonesimulator/WooCommerceScreenshots-Runner.app | |
capture: | |
name: Capture | |
needs: build | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
language: [ar, de-DE, en-US, es-ES, fr-FR, he, id, it, ja, ko, nl-NL, pt-BR, ru, sv, tr, zh-Hans, zh-Hant] | |
mode: [dark, light] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: "Set up Ruby" | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- name: Install Fastlane Dependencies | |
run: bundle exec fastlane run configure_apply | |
- name: Download Screenshot App | |
uses: actions/download-artifact@v4 | |
with: | |
name: screenshot-app | |
path: fastlane/DerivedData/Build/Products/Debug-iphonesimulator/WooCommerce.app | |
- name: Download Screenshot Runner | |
uses: actions/download-artifact@v4 | |
with: | |
name: screenshot-runner | |
path: fastlane/DerivedData/Build/Products/Debug-iphonesimulator/WooCommerceScreenshots-Runner.app | |
- name: Generate Screenshots | |
run: | | |
bundle exec fastlane take_screenshots languages:${{ matrix.language }} mode:${{ matrix.mode }} | |
- name: Store Logs | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "screenshot-log-${{ matrix.language }}-${{ matrix.mode }}" | |
path: fastlane/logs | |
- name: Archive Generated Screenshots | |
run: | | |
cd fastlane && mkdir $GITHUB_RUN_ID && mv screenshots $GITHUB_RUN_ID | |
aws s3 cp $GITHUB_RUN_ID s3://$S3_BUCKET/$GITHUB_RUN_ID --recursive --exclude "*.html" | |
process: | |
name: "Process Screenshots" | |
needs: capture | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Native Dependencies | |
run: | | |
brew install imagemagick@7 | |
brew link imagemagick@7 --force | |
- name: "Set up Ruby" | |
uses: ruby/setup-ruby@v1 | |
with: | |
bundler-cache: true | |
- name: Install Screenshot Gems | |
run: bundle install --with screenshots | |
- name: Install Fastlane Dependencies | |
run: bundle exec fastlane run configure_apply | |
- name: Download Generated Screenshots | |
run: | | |
cd fastlane | |
aws s3 cp s3://$S3_BUCKET/$GITHUB_RUN_ID/screenshots screenshots/ --recursive --exclude "*.html" | |
- name: Generate and Upload Screenshot Summary | |
run: | | |
bundle exec fastlane create_screenshot_summary | |
aws s3 cp fastlane/screenshots/screenshots.html s3://$S3_BUCKET/$GITHUB_RUN_ID/screenshots/screenshots.html | |
- name: Archive Raw Screenshots | |
uses: actions/upload-artifact@v4 | |
with: | |
name: raw-screenshots | |
path: fastlane/screenshots | |
- name: Install Promo Screenshot Fonts | |
run: | | |
aws s3 cp s3://$S3_BUCKET/fonts.zip fonts.zip | |
unzip fonts.zip | |
mkdir -p ~/Library/Fonts | |
cp -v fonts/*.otf ~/Library/Fonts | |
ls ~/Library/Fonts | |
mkdir -p /Library/Fonts | |
cp -v fonts/*.otf /Library/Fonts | |
ls /Library/Fonts | |
# Reset the font server in order to use these fonts | |
atsutil databases -removeUser | |
atsutil server -shutdown | |
atsutil server -ping | |
- name: Generate Promo Screenshots | |
run: | | |
git lfs install && git lfs fetch && git lfs pull | |
bundle exec fastlane create_promo_screenshots force:true | |
- name: Archive Promo Screenshots | |
uses: actions/upload-artifact@v4 | |
with: | |
name: promo-screenshots | |
path: fastlane/promo_screenshots |