# 해당 yml 파일의 이름
# 설정된 이름으로 Actions 탭의 workflows 항목에서 확인 가능
name: Android CI
# Event에 대해 작성하는 부분
# main으로 push나 pr 이벤트가 발생했을 때를 workflow를 실행시키는 트리거로 사용
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
# Job에 대해 작성하는 부분
jobs:
build:
# Job이 실행 될 OS : ubuntu, macos, window
# -lastest : 제공하는 OS의 가장 최신 버전
runs-on: ubuntu-latest
# 하이픈(-)을 통해 구분되어 작성되어 있는 항목들이
# Step 구문에 작성되어 있는 Job에서 수행되는 프로세스들을 의미한다.
steps:
- uses: actions/checkout@v3 # 해당 Step에서 수행할 Action
- name: set up JDK 11 # 해당 Step의 이름
uses: actions/setup-java@v3 # 해당 Step에서 실행될 커맨드 라인
with: # 해당 Step에서 수행되는 Action에 정의되는 Parameter. Key-Value 형태
java-version: '11'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
https://sonseungha.tistory.com/623
buildscript {
repositories {
maven {
url 'https://plugins.gradle.org/m2/'
}
}
dependencies {
classpath 'org.jlleitschuh.gradle:ktlint-gradle:12.1.0'
}
}
plugins {
id 'org.jlleitschuh.gradle.ktlint' version '12.1.0'
}
buildscript {
repositories {
maven(url = "https://plugins.gradle.org/m2/")
}
dependencies {
classpath("org.jlleitschuh.gradle:ktlint-gradle:9.1.0")
}
}
plugins {
id("org.jlleitschuh.gradle.ktlint") version "9.1.0"
}
# steps 아래 작성
# ktlint test
- name: Run ktlint
run: ./gradlew ktlintCheck
- name: Cache Gradle packages
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', '**/buildSrc/**/*.kt') }}
restore-keys: |
${{ runner.os }}-gradle-
name: Android CI
on:
# main, dev, feat branch pr 올리면 아래 jobs 수행
pull_request:
branches:
- 'main'
- 'develop'
- 'feat/*'
jobs:
build:
runs-on: ubuntu-latest
steps:
# timestamp
- name: Print start time
run: |
echo "Workflow started at $(date)"
# code branch checkout
- uses: actions/checkout@v3
- name: set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
# gradle 캐싱 작업
- name: Cache Gradle packages
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', '**/buildSrc/**/*.kt') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
# ktlint test
- name: Run ktlint
run: ./gradlew ktlintCheck