Skip to content

Commit

Permalink
chore: action
Browse files Browse the repository at this point in the history
  • Loading branch information
farfromrefug committed Oct 13, 2024
1 parent ebd3a7f commit b98aa2f
Showing 1 changed file with 72 additions and 70 deletions.
142 changes: 72 additions & 70 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
strategy:
matrix:
variant: ['android', 'ios', 'ios_metal']
runs-on: macos-latest
runs-on: ${{ matrix.variant == 'android' && 'ubuntu-latest' || 'macos-latest' }}
needs: [create-release]
name: CartoMobileSDK ${{ matrix.variant }}
steps:
Expand Down Expand Up @@ -83,24 +83,52 @@ jobs:
id: setup-ndk
with:
ndk-version: r25c

- name: Install CMake
run: |
brew install cmake
cmake --version
local-cache: false

- name: Install gradle
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v2

- name: Setup JDK
uses: actions/setup-java@v4
if: matrix.variant == 'android'
with:
cache: gradle
java-version: 17
distribution: 'temurin'

- name: Cache Gradle packages
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: 3.12

- name: ensure dist
run: |
brew install gradle@8
brew info gradle@8
brew link gradle@8
which gradle
mkdir dist
- name: fetch externals
run: |
git submodule update --init --remote --recursive
- name: Install build tools
if: matrix.variant == 'android'
run: |
sudo apt-get install autoconf automake libtool build-essential
- name: Install build tools
if: matrix.variant != 'android'
run: |
brew install autoconf automake libtool
- name: prepare boost
run: |
wget https://boostorg.jfrog.io/artifactory/main/release/1.85.0/source/boost_1_85_0.zip
Expand All @@ -110,9 +138,30 @@ jobs:
./bootstrap.sh
./b2 headers
- name: Build CSS2XML
if: matrix.variant != 'ios_metal'
run: |
cd libs-carto/cartocss/util
cmake -B build -DCMAKE_BUILD_TYPE=Release
cd build
make css2xml
mv css2xml css2xml_${{ matrix.variant }}
zip ../../../../dist/css2xml_${{ matrix.variant }}.zip css2xml_${{ matrix.variant }}
- name: Build swig
if: matrix.variant == 'android'
run: |
git clone https://github.com/farfromrefug/mobile-swig.git
cd mobile-swig
wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.44/pcre2-10.44.tar.gz
./Tools/pcre-build.sh
./autogen.sh
./configure
make
- name: Build swig
if: matrix.variant != 'android'
run: |
brew install autoconf automake libtool
git clone https://github.com/farfromrefug/mobile-swig.git
cd mobile-swig
wget https://github.com/PCRE2Project/pcre2/releases/download/pcre2-10.44/pcre2-10.44.tar.gz
Expand All @@ -137,7 +186,7 @@ jobs:
if: matrix.variant == 'android'
run: |
cd scripts
python build-android.py --profile standard+valhalla --build-aar --build-version ${{ needs.create-release.outputs.VERSION }}--configuration=Release --gradle /opt/homebrew/bin/gradle
python build-android.py --profile standard+valhalla --build-aar --build-version ${{ needs.create-release.outputs.VERSION }}--configuration=Release
env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}

Expand All @@ -153,11 +202,13 @@ jobs:
cd scripts
python build-ios.py --profile standard+valhalla --build-cocoapod --build-version ${{ needs.create-release.outputs.VERSION }} --configuration=Release --build-xcframework --use-metalangle
- uses: actions/upload-artifact@v4
if: matrix.variant == 'android'
with:
name: CartoMobileSDK-${{matrix.variant}}-${{ needs.create-release.outputs.VERSION }}.zip
path: |
dist/css2xml_*.zip
dist/android/*.aar
dist/android/*.jar
dist/android/*.pom
Expand All @@ -166,78 +217,29 @@ jobs:
if: matrix.variant != 'android'
with:
name: CartoMobileSDK-${{matrix.variant}}-${{ needs.create-release.outputs.VERSION }}.zip
path: dist/${{matrix.variant}}/*.zip
path: |
dist/css2xml_*.zip
dist/${{matrix.variant}}/*.zip
- name: Upload Release Asset
if: matrix.variant == 'android'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run:
run: |
gh release upload ${{ needs.create-release.outputs.VERSION_TAG }} dist/css2xml_*.zip
gh release upload ${{ needs.create-release.outputs.VERSION_TAG }} dist/android/*.aar
- name: Upload Release Asset
if: matrix.variant != 'android'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run:
gh release upload ${{ needs.create-release.outputs.VERSION_TAG }} dist/${{matrix.variant}}/*.zip

build-css2xml:
needs: [create-release]
strategy:
matrix:
variant: ['linux', 'darmin']
runs-on: ${{ matrix.variant == 'linux' && 'ubuntu-latest' || 'macos-latest' }}
name: CartoMobileSDK CSS2XML ${{ matrix.variant }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v2

- name: Install gradle
if: matrix.variant == 'android'
run: |
brew install gradle@8
brew info gradle@8
brew link gradle@8
which gradle
- name: fetch externals
run: |
git submodule update --init --remote --recursive
- name: prepare boost
run: |
wget https://boostorg.jfrog.io/artifactory/main/release/1.85.0/source/boost_1_85_0.zip
unzip boost_1_85_0.zip
ln -s ../boost_1_85_0 libs-external/boost
cd boost_1_85_0
./bootstrap.sh
./b2 headers
- name: build css2xml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
cd libs-carto/cartocss/util
cmake -B build -DCMAKE_BUILD_TYPE=Release
cd build
make css2xml
mv css2xml css2xml_${{ matrix.variant }}
gh release upload ${{ needs.create-release.outputs.VERSION_TAG }} css2xml_${{ matrix.variant }}
- name: Upload Release Asset
if: matrix.variant != 'android'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run:
gh release upload ${{ needs.create-release.outputs.VERSION_TAG }} dist/css2xml_*.zip
gh release upload ${{ needs.create-release.outputs.VERSION_TAG }} dist/${{matrix.variant}}/*.zip
update-release:
runs-on: ubuntu-latest
needs: [create-release, build, build-css2xml]
needs: [create-release, build]
permissions:
contents: write # release changes require contents write
steps:
Expand Down

0 comments on commit b98aa2f

Please sign in to comment.