diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..39ad2dd --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,105 @@ +name: Tests + +on: + push: + branches: + - 'master' + pull_request: + branches: + - 'master' + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up JDK 21 + uses: actions/setup-java@v1 + with: + java-version: 21 + + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 + with: + gradle-version: '8.4' + + - name: Cache Gradle packages + uses: actions/cache@v2 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Build + uses: gradle/gradle-build-action@v2 + with: + gradle-version: '8.4' + arguments: build -x test -x ktlintKotlinScriptCheck -x ktlintTestSourceSetCheck -x ktlintMainSourceSetCheck + + - name: processResources + run: gradle processResources + + - name: processTestResources + uses: gradle/gradle-build-action@v2 + with: + gradle-version: '8.4' + arguments: processResources + + - uses: actions/upload-artifact@v2 + with: + name: Build + path: build + + test: + needs: build + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Set up JDK 21 + uses: actions/setup-java@v1 + with: + java-version: 21 + + - uses: actions/download-artifact@v2 + with: + name: Build + path: build + + - name: Composer Up + uses: gradle/gradle-build-action@v2 + with: + gradle-version: '8.4' + arguments: composeUp + + - name: Test + uses: gradle/gradle-build-action@v2 + with: + gradle-version: '8.4' + arguments: test + + lint: + needs: build + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 21 + uses: actions/setup-java@v1 + with: + java-version: 21 + - uses: actions/download-artifact@v2 + with: + name: Build + path: build + - name: Lint + uses: gradle/gradle-build-action@v2 + with: + gradle-version: '8.4' + arguments: ktlintCheck \ No newline at end of file