This repository has been archived by the owner on Jun 20, 2023. It is now read-only.
Nightly Checks and Tasks #349
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: 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 |