Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

Nightly Checks and Tasks #345

Nightly Checks and Tasks

Nightly Checks and Tasks #345

Workflow file for this run

name: Nightly Checks and Tasks
on:
workflow_dispatch:
schedule:
- cron: '5 20 * * 1-5' #Weekdays at 20:05
jobs:
dependencies:
runs-on: self-hosted
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Save Dependencies
uses: actions/cache@v2
id: cache-dependencies
env:
cache-name: cache-dependencies
with:
path: |
src/xcode/vendor
src/xcode/.bundle
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('src/xcode/Gemfile.lock') }}
- name: Install dependencies
if: steps.cache-dependencies.outputs.cache-hit != 'true'
run: cd src/xcode && arch -arm64 bundle install --path=vendor
- name: Save Dependencies
uses: actions/cache@v2
if: steps.cache-dependencies.outputs.cache-hit != 'true'
env:
cache-name: cache-dependencies
with:
path: |
src/xcode/vendor
src/xcode/.bundle
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('src/xcode/Gemfile.lock') }}
buildForTesting:
runs-on: self-hosted
needs: dependencies
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Restore Dependencies
uses: actions/cache@v2
env:
cache-name: cache-dependencies
with:
path: |
src/xcode/vendor
src/xcode/.bundle
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('src/xcode/Gemfile.lock') }}
- name: Build for testing
run: |
cd src/xcode && arch -arm64 bundle exec fastlane build_for_testing
- name: Save DerivedData folder
uses: actions/cache@v2
env:
cache-name: cache-derived-data
with:
path: src/xcode/DerivedData
key: ${{ runner.os }}-${{ env.cache-name }}-${{ github.sha }}
- name: Save test_output folder
uses: actions/cache@v2
env:
cache-name: cache-test-output
with:
path: src/xcode/fastlane/test_output
key: ${{ runner.os }}-${{ env.cache-name }}-${{ github.sha }}
snapshot:
runs-on: self-hosted
needs: buildForTesting
strategy:
matrix:
language: ["de-DE", "en-EN"]
displaymode: ["dark", "light"]
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Restore Dependencies
uses: actions/cache@v2
env:
cache-name: cache-dependencies
with:
path: |
src/xcode/vendor
src/xcode/.bundle
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('src/xcode/Gemfile.lock') }}
- name: Restore DerivedData folder
uses: actions/cache@v2
env:
cache-name: cache-derived-data
with:
path: src/xcode/DerivedData
key: ${{ runner.os }}-${{ env.cache-name }}-${{ github.sha }}
- name: Restore test_output folder
uses: actions/cache@v2
env:
cache-name: cache-test-output
with:
path: src/xcode/fastlane/test_output
key: ${{ runner.os }}-${{ env.cache-name }}-${{ github.sha }}
- name: Snapshot ${{ matrix.language }}-${{ matrix.displaymode }}
run: |
cd src/xcode && arch -arm64 bundle exec fastlane screenshot languages:${{ matrix.language }} mode:${{ matrix.displaymode }}
- name: Archive xcresult
if: failure()
uses: actions/upload-artifact@v2
with:
name: xcresult-${{ github.sha }}
path: src/xcode/fastlane/test_output/ENA.xcresult.zip
- name: Remove test_output folder
run: |
cd src/xcode/screenshots/screenshots-${{ matrix.language }}-${{ matrix.displaymode }}
rm -r test_output
- uses: actions/upload-artifact@v2
with:
name: screenshots-${{ github.sha }}
path: src/xcode/screenshots
runAllTests:
runs-on: self-hosted
needs: buildForTesting
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Restore Dependencies
uses: actions/cache@v2
env:
cache-name: cache-dependencies
with:
path: |
src/xcode/vendor
src/xcode/.bundle
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('src/xcode/Gemfile.lock') }}
- name: Restore DerivedData folder
uses: actions/cache@v2
env:
cache-name: cache-derived-data
with:
path: src/xcode/DerivedData
key: ${{ runner.os }}-${{ env.cache-name }}-${{ github.sha }}
- name: Restore test_output folder
uses: actions/cache@v2
env:
cache-name: cache-test-output
with:
path: src/xcode/fastlane/test_output
key: ${{ runner.os }}-${{ env.cache-name }}-${{ github.sha }}
- name: Run AllTests
run: |
cd src/xcode
arch -arm64 bundle exec fastlane test_without_building testplan:AllTests
- name: Archive xcresult
if: always()
uses: actions/upload-artifact@v3
with:
name: xcresult-${{ github.sha }}
path: src/xcode/fastlane/test_output/ENA.xcresult.zip
sonar:
runs-on: self-hosted
needs: runAllTests
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Restore Dependencies
uses: actions/cache@v2
env:
cache-name: cache-dependencies
with:
path: |
src/xcode/vendor
src/xcode/.bundle
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('src/xcode/Gemfile.lock') }}
- name: Download xcresult
uses: actions/download-artifact@v3
with:
name: xcresult-${{ github.sha }}
- name: Convert coverage information to SonarCloud format
run: |
unzip ENA.xcresult.zip
./scripts/cococo \
ENA.xcresult > \
coverage.xml
- name: Install and run sonar-scanner
env:
SONAR_TOKEN: '${{ secrets.SONAR_TOKEN }}'
SONARQUBE_SCANNER_PARAMS: '{"sonar.host.url":"https://sonarcloud.io", "sonar.branch.name": "main"}'
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN_GITHUB }}
run: |
SCANNER=sonar-scanner-cli-4.3.0.2102-macosx
SCANNERDIR=~/sonar/sonar-scanner-4.3.0.2102-macosx
if [[ ! -x "$SCANNERDIR/bin/sonar-scanner" ]]; then
curl -Ol https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/$SCANNER.zip
unzip -qq -o $SCANNER.zip -d ~/sonar/
fi
chmod +x $SCANNERDIR/bin/sonar-scanner
chmod +x $SCANNERDIR/jre/bin/java
$SCANNERDIR/bin/sonar-scanner