[Feature] RankingScreen data 로직을 연결합니다. #229
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: Android Build Test Lint CI | |
on: | |
push: | |
branches: | |
- "main" | |
- "develop" | |
- "Release/*" | |
pull_request: | |
branches: | |
- "main" | |
- "develop" | |
- "Release/*" | |
jobs: | |
pre-steps: | |
runs-on: ubuntu-latest | |
outputs: | |
changed_modules: ${{ steps.get-modules.outputs.changed_modules }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Load Google Service file | |
env: | |
DATA: ${{ secrets.GOOGLE_SERVICES_JSON }} | |
run: echo $DATA | base64 -di > app/google-services.json | |
- name: Create local.properties | |
env: | |
LOCAL_PROPERTIES_CONTENTS: ${{ secrets.LOCAL_PROPERTIES_CONTENTS }} | |
run: echo "${LOCAL_PROPERTIES_CONTENTS}" > local.properties | |
- name: Determine changed modules | |
id: get-modules | |
run: | | |
CHANGED_MODULES=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep '^modules/' | cut -d'/' -f1 | sort | uniq) | |
echo "changed_modules=$CHANGED_MODULES" >> $GITHUB_ENV | |
build: | |
runs-on: ubuntu-latest | |
needs: pre-steps | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Cache Gradle for Build | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-build-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle-build- | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
- name: Selective Build | |
run: | | |
if [[ -n "${{ env.changed_modules }}" ]]; then | |
for module in ${{ env.changed_modules }}; do | |
echo "Building $module" | |
./gradlew $module:assemble | |
done | |
else | |
echo "No changes detected in modules." | |
fi | |
env: | |
changed_modules: ${{ needs.pre-steps.outputs.changed_modules }} | |
test: | |
runs-on: ubuntu-latest | |
needs: pre-steps | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Cache Gradle for Test | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-test-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle-test- | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
- name: Selective Test | |
run: | | |
if [[ -n "${{ env.changed_modules }}" ]]; then | |
for module in ${{ env.changed_modules }}; do | |
echo "Testing $module" | |
./gradlew $module:test | |
done | |
else | |
echo "No changes detected in modules." | |
fi | |
env: | |
changed_modules: ${{ needs.pre-steps.outputs.changed_modules }} | |
lint: | |
runs-on: ubuntu-latest | |
needs: pre-steps | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Cache Gradle for Lint | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-lint-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
restore-keys: | | |
${{ runner.os }}-gradle-lint- | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
- name: Selective Lint | |
run: | | |
if [[ -n "${{ env.changed_modules }}" ]]; then | |
for module in ${{ env.changed_modules }}; do | |
echo "Linting $module" | |
./gradlew $module:ktlintCheck | |
done | |
else | |
echo "No changes detected in modules." | |
fi | |
env: | |
changed_modules: ${{ needs.pre-steps.outputs.changed_modules }} |