Skip to content

Build

Build #112

Workflow file for this run

name: 'Build'
on:
schedule:
- cron: '37 04,16 * * *'
workflow_dispatch:
defaults:
run:
shell: "bash"
env:
GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false"
RUNNING_ON_CI: "true"
LC_ALL: C.UTF-8
LANG: C.UTF-8
VCPKG_BINARY_SOURCES: clear;files,${{ github.workspace }}/.vcpkg-cache,readwrite
jobs:
windows:
name: Build on Windows
runs-on: windows-latest
strategy:
matrix:
split: [0]
env:
BUILD_SPLIT_ID: ${{ matrix.split }}
MAX_SPLITS: "1"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout
uses: actions/checkout@v4
with:
repository: ensody/vcpkg
path: vcpkg
fetch-depth: 0
- name: Cache Packages
id: cache-vcpkg
uses: actions/cache@v4
with:
path: |
.vcpkg-cache
vcpkg/buildtrees
vcpkg/downloads
key: ${{ runner.os }}-${{ runner.arch }}-${{ matrix.split }}
- name: Setup vcpkg
run: |
cd vcpkg
git config user.name "$(git log -1 --pretty=format:'%an')"
git config user.email "$(git log -1 --pretty=format:'%ae')"
git remote add base https://github.com/microsoft/vcpkg
git fetch base master
git rebase base/master
./bootstrap-vcpkg.sh -disableMetrics
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v4
- name: Install JDK
uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
cache: gradle
check-latest: true
- name: Build
run: ./gradlew --no-daemon assembleProjects
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-windows-${{ matrix.split }}
path: generated-kotlin-wrappers
if-no-files-found: "ignore"
- name: Bundle the build report
if: failure()
run: find . -type d -name 'reports' | zip -@ -r build-report.zip
- name: Upload the build report
if: failure()
uses: actions/upload-artifact@master
with:
name: build-report-windows-${{ matrix.split }}
path: |
build-report.zip
vcpkg/buildtrees/*/*.log
linux:
name: Build on Linux
runs-on: ubuntu-latest
strategy:
matrix:
split: [0, 1]
env:
BUILD_SPLIT_ID: ${{ matrix.split }}
MAX_SPLITS: "2"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout
uses: actions/checkout@v4
with:
repository: ensody/vcpkg
path: vcpkg
fetch-depth: 0
- name: Cache Packages
id: cache-vcpkg
uses: actions/cache@v4
with:
path: |
.vcpkg-cache
vcpkg/buildtrees
vcpkg/downloads
key: ${{ runner.os }}-${{ runner.arch }}-${{ matrix.split }}
- name: Install build tools
env:
DEBIAN_FRONTEND: noninteractive
TZ: Etc/UTC
run: |
sudo apt-get update
sudo apt-get install -y git build-essential crossbuild-essential-arm64 pkg-config curl zip unzip tar
- name: Setup vcpkg
run: |
cd vcpkg
git config user.name "$(git log -1 --pretty=format:'%an')"
git config user.email "$(git log -1 --pretty=format:'%ae')"
git remote add base https://github.com/microsoft/vcpkg
git fetch base master
git rebase base/master
./bootstrap-vcpkg.sh -disableMetrics
- name: Install emsdk
if: false # Currently we don't build for WASM
run: |
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v4
- name: Install JDK
uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
cache: gradle
check-latest: true
- name: Build
run: |
# source ./emsdk/emsdk_env.sh
./gradlew --no-daemon assembleProjects
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-linux-${{ matrix.split }}
path: generated-kotlin-wrappers
if-no-files-found: "ignore"
- name: Bundle the build report
if: failure()
run: find . -type d -name 'reports' | zip -@ -r build-report.zip
- name: Upload the build report
if: failure()
uses: actions/upload-artifact@master
with:
name: build-report-linux-${{ matrix.split }}
path: |
build-report.zip
vcpkg/buildtrees/*/*.log
macos:
name: Build on macOS
runs-on: macos-latest
strategy:
matrix:
split: [0, 1, 2]
env:
BUILD_SPLIT_ID: ${{ matrix.split }}
MAX_SPLITS: "3"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout
uses: actions/checkout@v4
with:
repository: ensody/vcpkg
path: vcpkg
fetch-depth: 0
- name: Cache Packages
id: cache-vcpkg
uses: actions/cache@v4
with:
path: |
.vcpkg-cache
vcpkg/buildtrees
vcpkg/downloads
key: ${{ runner.os }}-${{ runner.arch }}-${{ matrix.split }}
- name: Setup vcpkg
run: |
cd vcpkg
git config user.name "$(git log -1 --pretty=format:'%an')"
git config user.email "$(git log -1 --pretty=format:'%ae')"
git remote add base https://github.com/microsoft/vcpkg
git fetch base master
git rebase base/master
./bootstrap-vcpkg.sh -disableMetrics
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v4
- name: Install JDK
uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
cache: gradle
check-latest: true
- name: Build
run: ./gradlew --no-daemon assembleProjects
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: artifacts-macos-${{ matrix.split }}
path: generated-kotlin-wrappers
if-no-files-found: "ignore"
- name: Bundle the build report
if: failure()
run: find . -type d -name 'reports' | zip -@ -r build-report.zip
- name: Upload the build report
if: failure()
uses: actions/upload-artifact@master
with:
name: build-report-macos-${{ matrix.split }}
path: |
build-report.zip
vcpkg/buildtrees/**/*.log
publish:
name: Publish artifacts
runs-on: macos-latest
needs:
- linux
- macos
- windows
env:
PUBLISHING: "true"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout
uses: actions/checkout@v4
with:
repository: ensody/vcpkg
path: vcpkg
fetch-depth: 0
- name: Setup vcpkg
run: |
cd vcpkg
git config user.name "$(git log -1 --pretty=format:'%an')"
git config user.email "$(git log -1 --pretty=format:'%ae')"
git remote add base https://github.com/microsoft/vcpkg
git fetch base master
git rebase base/master
./bootstrap-vcpkg.sh -disableMetrics
- name: Validate Gradle Wrapper
uses: gradle/actions/wrapper-validation@v4
- name: Install JDK
uses: actions/setup-java@v4
with:
java-version: "17"
distribution: "temurin"
cache: gradle
check-latest: true
- name: Download all build artifacts
uses: actions/download-artifact@v4
with:
pattern: "artifacts-*"
path: "generated-kotlin-wrappers"
merge-multiple: true
- name: Generate wrappers
run: ./gradlew --no-daemon generateBuildScripts
- name: Build wrappers
run: ./gradlew --no-daemon assemble
env:
WITH_WRAPPERS: "true"
- name: Publish
run: ./gradlew --no-daemon publishToMavenCentral
env:
WITH_WRAPPERS: "true"
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.PUBLICATION_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.PUBLICATION_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.SIGNING_KEY_ID }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_KEY_RING }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_PASSWORD }}
- name: Bundle the build report
if: failure()
run: find . -type d -name 'reports' | zip -@ -r build-report.zip
- name: Upload the build report
if: failure()
uses: actions/upload-artifact@master
with:
name: build-report-publish
path: |
build-report.zip
vcpkg/buildtrees/**/*.log