[CI] Use Github-Actions #36
Workflow file for this run
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: Test | |
on: | |
pull_request: | |
branches: | |
- main | |
- develop | |
- feature/* | |
paths-ignore: | |
- README.md | |
permissions: | |
contents: read | |
actions: read | |
jobs: | |
dependencies: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup | |
uses: ./.github/actions/setup | |
with: | |
api-key: ${{ secrets.API_KEY }} | |
test-prod: | |
needs: dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
# ref: https://github.com/danger/danger/issues/913 | |
fetch-depth: 100 | |
- name: Setup | |
uses: ./.github/actions/setup | |
with: | |
api-key: ${{ secrets.API_KEY }} | |
- name: ktlint-check | |
run: ./gradlew --continue ktlintCheck | |
- name: Test ProdDebug | |
run: ./gradlew testProdDebugUnitTest | |
- name: Report jacoco | |
run: ./gradlew jacocoTestReport | |
- name: jacoco-report to zip | |
run: zip -r jacocoTestReport.zip ./build/reports/jacoco/jacocoTestReport/html | |
- name: Archive jacoco report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: jacocoTestReport | |
path: ./build/reports/jacoco/jacocoTestReport/html | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 3.2.2 | |
bundler-cache: true | |
- name: Danger | |
uses: MeilCli/danger-action@v5 | |
with: | |
plugins_file: Gemfile | |
install_path: vendor/bundle | |
danger_file: Dangerfile | |
danger_id: danger-pr | |
env: | |
DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }} | |
- name: Slack notify | |
uses: ./.github/actions/incoming-webhook | |
with: | |
slack-webhook-url: ${{ secrets.SLACK_INCOMING_WEBHOOK_URL }} | |
compile-mock: | |
needs: dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup | |
uses: ./.github/actions/setup | |
with: | |
api-key: ${{ secrets.API_KEY }} | |
- name: Compile MockDebug | |
run: ./gradlew compileMockDebugSource | |
compare-screnshots: | |
needs: dependencies | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Setup | |
uses: ./.github/actions/setup | |
with: | |
api-key: ${{ secrets.API_KEY }} | |
- name: compare screenshots | |
run: ./gradlew compareRoborazziProdDebug --stacktrace | |
- name: Make PR number directory for saving screenshots | |
if: ${{ github.event_name == 'pull_request' }} | |
run: mkdir -p ./pr/${{ github.event.number }} | |
- name: Move screenshots to PR number directory | |
if: ${{ github.event_name == 'pull_request' }} | |
run: | | |
# delete except *_compare.png | |
find ./app/build/outputs/roborazzi -type f | grep -v -e '.*_compare.png' | xargs rm -rf | |
mv ./app/build/outputs/roborazzi ./pr/${{ github.event.number }}/ | |
ls ./pr/${{ github.event.number }} | |
- name: Save screenshots | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pr directory | |
path: pr/${{ github.event.number }}/ |