From 54d951b41e87ce23ac7e90b14f10d5a7d6f863d8 Mon Sep 17 00:00:00 2001 From: Petr Pokorny Date: Sat, 30 Jan 2021 21:29:39 +0100 Subject: [PATCH] Added macos release workflow --- .github/workflows/macos-release.yml | 84 +++++++++++++++++++ .../darwin/scripts/generate-style-code.js | 71 ++++++++-------- .../platform/macos/scripts/deploy-packages.sh | 2 +- 3 files changed, 122 insertions(+), 35 deletions(-) create mode 100644 .github/workflows/macos-release.yml diff --git a/.github/workflows/macos-release.yml b/.github/workflows/macos-release.yml new file mode 100644 index 000000000..905c04d1a --- /dev/null +++ b/.github/workflows/macos-release.yml @@ -0,0 +1,84 @@ +name: ios-release + +on: + workflow_dispatch: + push: + tags: + - macos-v* + paths-ignore: + - ".github/**" + - "README.md" +jobs: + build: + runs-on: macos-10.15 + env: + BUILDTYPE: Release + HOMEBREW_NO_AUTO_UPDATE: 1 + HOMEBREW_NO_INSTALL_CLEANUP: 1 + defaults: + run: + working-directory: platform/ios + shell: bash + + steps: + - uses: actions/checkout@v2 + with: + submodules: recursive + fetch-depth: 0 + + - name: Install macos dependencies + run: | + brew list cmake || brew install cmake + brew list ccache || brew install ccache + brew list pkg-config || brew install pkg-config + brew list glfw3 || brew install glfw3 + + - name: Cache node modules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + path: ~/.npm + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: npm install + run: npm install --ignore-scripts + + - name: Prepare ccache + run: ccache --clear + + - name: Cache ccache + uses: actions/cache@v2 + env: + cache-name: ccache-v1 + with: + path: ~/.ccache' + key: ${{ env.cache-name }}-${{ runner.os }}-${{ github.job }}-${{ github.ref }}-${{ github.sha }}-${{ github.head_ref }} + restore-keys: | + ${{ env.cache-name }}-${{ runner.os }}-${{ github.job }}-${{ github.ref }}-${{ github.sha }} + ${{ env.cache-name }}-${{ runner.os }}-${{ github.job }}-${{ github.ref }} + ${{ env.cache-name }}-${{ runner.os }}-${{ github.job }} + + - name: Clear ccache statistics + run: | + ccache --zero-stats + ccache --max-size=2G + ccache --show-stats + + - name: Install packaging dependencies + run: | + ./platform/ios/scripts/install-packaging-dependencies.sh + env: + CILAUNCH: true + + - name: Build package + run: make xpackage + + - name: Build package + run: make xdeploy + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/platform/ios/platform/darwin/scripts/generate-style-code.js b/platform/ios/platform/darwin/scripts/generate-style-code.js index ab0513d33..0c05fc5d5 100755 --- a/platform/ios/platform/darwin/scripts/generate-style-code.js +++ b/platform/ios/platform/darwin/scripts/generate-style-code.js @@ -38,41 +38,44 @@ _.forOwn(cocoaConventions, function (properties, kind) { _.forOwn(properties, function (newConvention, oldName) { let conventionOverride = new ConventionOverride(newConvention); let property = spec[kind][oldName]; - if (conventionOverride.name.startsWith('is-')) { - property.getter = conventionOverride.name; - conventionOverride.name = conventionOverride.name.substr(3); - } - - // Override enum name based on style-spec-cocoa-conventions-v8.json - property.enumName = conventionOverride.enumName; - - if (conventionOverride.name !== oldName) { - property.original = oldName; - delete spec[kind][oldName]; - spec[kind][conventionOverride.name] = property; - } - - // Update cross-references to this property in other properties' - // documentation and requirements. - let renameCrossReferences = function (property, name) { - property.doc = property.doc.replace(new RegExp('`' + oldName + '`', 'g'), '`' + conventionOverride.name + '`'); - let requires = property.requires || []; - for (let i = 0; i < requires.length; i++) { - if (requires[i] === oldName) { - property.requires[i] = conventionOverride.name; - } - if (typeof requires[i] !== 'string') { - _.forOwn(requires[i], function (values, name, require) { - if (name === oldName) { - require[conventionOverride.name] = values; - delete require[name]; - } - }); - } + + if (property) { + if (conventionOverride.name.startsWith('is-')) { + property.getter = conventionOverride.name; + conventionOverride.name = conventionOverride.name.substr(3); } - }; - _.forOwn(spec[kind.replace(/^layout_/, 'paint_')], renameCrossReferences); - _.forOwn(spec[kind.replace(/^paint_/, 'layout_')], renameCrossReferences); + + // Override enum name based on style-spec-cocoa-conventions-v8.json + property.enumName = conventionOverride.enumName; + + if (conventionOverride.name !== oldName) { + property.original = oldName; + delete spec[kind][oldName]; + spec[kind][conventionOverride.name] = property; + } + + // Update cross-references to this property in other properties' + // documentation and requirements. + let renameCrossReferences = function (property, name) { + property.doc = property.doc.replace(new RegExp('`' + oldName + '`', 'g'), '`' + conventionOverride.name + '`'); + let requires = property.requires || []; + for (let i = 0; i < requires.length; i++) { + if (requires[i] === oldName) { + property.requires[i] = conventionOverride.name; + } + if (typeof requires[i] !== 'string') { + _.forOwn(requires[i], function (values, name, require) { + if (name === oldName) { + require[conventionOverride.name] = values; + delete require[name]; + } + }); + } + } + }; + _.forOwn(spec[kind.replace(/^layout_/, 'paint_')], renameCrossReferences); + _.forOwn(spec[kind.replace(/^paint_/, 'layout_')], renameCrossReferences); + } }) }); diff --git a/platform/ios/platform/macos/scripts/deploy-packages.sh b/platform/ios/platform/macos/scripts/deploy-packages.sh index ec6568d7e..60dcbe790 100755 --- a/platform/ios/platform/macos/scripts/deploy-packages.sh +++ b/platform/ios/platform/macos/scripts/deploy-packages.sh @@ -74,7 +74,7 @@ publish() { fi } -export GITHUB_USER=mapbox +export GITHUB_USER=maptiler export GITHUB_REPO=maplibre-gl-native export BUILDTYPE=Release