Skip to content

Commit

Permalink
Migrate GitHub Actions to CircleCI (#207)
Browse files Browse the repository at this point in the history
  • Loading branch information
JayShortway authored Sep 20, 2024
1 parent 25c38a3 commit b32f55d
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 288 deletions.
39 changes: 34 additions & 5 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,17 @@ jobs:
command: ./gradlew :apiTester:assemble
- android/save-gradle-cache

unit-tests:
executor: xcode15
steps:
- install-android-sdk-on-macos
- checkout
- android/restore-gradle-cache
- run:
name: Execute unit tests
command: ./gradlew allTests
- android/save-gradle-cache

build:
executor: xcode15
steps:
Expand Down Expand Up @@ -198,11 +209,6 @@ jobs:
command: bundle exec fastlane github_release_current_version

workflows:
danger:
jobs:
- revenuecat/danger:
context: danger-bot

on-action-upgrade-hybrid-common:
when:
equal: [ upgrade-hybrid-common, << pipeline.parameters.action >> ]
Expand All @@ -212,6 +218,27 @@ workflows:
- git-user-ops
- github-bot-public

# This workflow runs for any commit to main, as well as for any other
# branch with an open PR. This is controlled by the "Only build pull requests"
# setting on CircleCI.
on-any-branch:
when:
not:
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
jobs:
- revenuecat/danger:
context: danger-bot
- detekt
- validate-binary-compatibility
- test-public-api
- unit-tests
- build:
requires:
- detekt
- validate-binary-compatibility
- test-public-api
- unit-tests

on-main-branch:
when:
and:
Expand Down Expand Up @@ -260,11 +287,13 @@ workflows:
- detekt
- validate-binary-compatibility
- test-public-api
- unit-tests
- build:
requires:
- detekt
- validate-binary-compatibility
- test-public-api
- unit-tests
- hold:
type: approval
requires:
Expand Down
96 changes: 0 additions & 96 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,105 +5,10 @@ on:
branches: [ "main" ]

jobs:
detekt:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Run Detekt on commonMain
run: ./gradlew detektCommonMain

validate-binary-compatibility:
runs-on: macos-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Validate binary compatibility
run: ./gradlew apiCheck

test-public-api:
runs-on: macos-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Test public API
run: ./gradlew :apiTester:assemble

test-unit-tests:
runs-on: macos-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Execute unit tests
run: ./gradlew allTests

build:
needs: [ detekt, validate-binary-compatibility, test-public-api ]
runs-on: macos-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

- name: Build libraries
run: ./gradlew assemble -x :composeApp:assemble
- name: Build sample
run: ./gradlew :composeApp:assembleDebug

dependency-submission:
needs: build

runs-on: ubuntu-latest
permissions:
contents: write

steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
Expand All @@ -112,7 +17,6 @@ jobs:
with:
java-version: '17'
distribution: 'temurin'

# Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies.
# See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md
- name: Generate and submit dependency graph
Expand Down
100 changes: 8 additions & 92 deletions .github/workflows/on_release_tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ name: On release tag
on:
push:
tags:
- '^[0-9]+\.[0-9]+\.[0-9]+(?!.*-SNAPSHOT).*$'
- '^[0-9]+\\.[0-9]+\\.[0-9]+(?!.*-SNAPSHOT).*$'

jobs:
detekt:
generate-api-reference:
needs: build
runs-on: ubuntu-latest
permissions:
contents: read
Expand All @@ -20,106 +21,21 @@ jobs:
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Run Detekt on commonMain
run: ./gradlew detektCommonMain

validate-binary-compatibility:
runs-on: macos-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
- name: Generate Dokkatoo site
run: ./gradlew :dokkatooGenerate
- name: Upload GitHub Pages artifact
uses: actions/[email protected]
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Validate binary compatibility
run: ./gradlew apiCheck

test-public-api:
runs-on: macos-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0
- name: Test public API
run: ./gradlew :apiTester:assemble

build:
needs: [ detekt, validate-binary-compatibility, test-public-api ]
runs-on: macos-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

- name: Build libraries
run: ./gradlew assemble -x :composeApp:assemble
- name: Build sample
run: ./gradlew :composeApp:assembleDebug

generate-api-reference:
needs: build

runs-on: ubuntu-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

- name: Generate Dokkatoo site
run: ./gradlew :dokkatooGenerate
- name: Upload GitHub Pages artifact
uses: actions/[email protected]
with:
path: 'build/dokka/html'
path: 'build/dokka/html'

deploy-api-reference:
needs: generate-api-reference

permissions:
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source

environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
Expand Down
Loading

0 comments on commit b32f55d

Please sign in to comment.