Skip to content

expose BUILD_STATIC #422

expose BUILD_STATIC

expose BUILD_STATIC #422

Workflow file for this run

name: NES Dependencies builder
on:
push:
tags:
- 'v*'
jobs:
build-linux:
timeout-minutes: 360
name: ${{ matrix.osversion }} ${{ matrix.arch }}
runs-on: [self-hosted, linux, '${{ matrix.arch }}', dep-builder]
strategy:
fail-fast: false
matrix:
include:
- osversion: ubuntu-24.04
arch: "x64"
force_system_binary: 0
- osversion: ubuntu-20.04
arch: "x64"
force_system_binary: 0
- osversion: ubuntu-22.04
arch: "x64"
force_system_binary: 0
- osversion: ubuntu-24.04
arch: "arm64"
force_system_binary: 1
- osversion: ubuntu-20.04
arch: "arm64"
force_system_binary: 1
- osversion: ubuntu-22.04
arch: "arm64"
force_system_binary: 1
- osversion: rocky-8.7
arch: "arm64"
force_system_binary: 1
env:
VCPKG_DEP_LIST: ${{ matrix.arch }}-linux
VCPKG_FORCE_SYSTEM_BINARIES: ${{ matrix.force_system_binary }}
VCPKG_FEATURE_FLAGS: -binarycaching
steps:
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- name: Checkout vcpkg submodules
working-directory: ${{ github.workspace }}/vcpkg/
run: git fetch --unshallow || true
- name: Set output vars to the actual tag name
id: vars
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}
- name: Build Docker
id: builddocker
working-directory: ${{ github.workspace }}/docker/
run: |
docker build \
-t nes_dep_build_${{ matrix.osversion }} \
-f Dockerfile-${{ matrix.osversion }} \
.
- name: Install vcpkg
id: bootstrapvcpkg
run: |
docker run \
-u $(id -u ${USER}):$(id -g ${USER}) \
-e ARCH=${{ matrix.arch }} \
-v ${{ github.workspace }}:/build_dir \
--rm \
nes_dep_build_${{ matrix.osversion }} /build_dir/vcpkg/bootstrap-vcpkg.sh -disableMetrics
shell: bash
- name: Install dependencies in manifest mode
id: installdeps
run: |
docker run \
-u $(id -u ${USER}):$(id -g ${USER}) \
-e ARCH=${{ matrix.arch }} \
-v ${{ github.workspace }}:/build_dir \
--rm \
nes_dep_build_${{ matrix.osversion }} /build_dir/vcpkg/vcpkg install \
--triplet=${{ env.VCPKG_DEP_LIST }}-nes \
--host-triplet=${{ env.VCPKG_DEP_LIST }}-nes \
--overlay-triplets=/build_dir/custom-triplets/ \
--x-manifest-root=/build_dir/ \
--overlay-ports=/build_dir/vcpkg-registry/ports
- name: Compress artifacts
id: compressdeps
run: |
mkdir nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes && \
mv \
${{ github.workspace }}/vcpkg_installed \
nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes/installed && \
mkdir -p nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes/scripts/buildsystems && \
cp \
${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake \
${{ github.workspace }}/nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes/scripts/buildsystems/ && \
touch ${{ github.workspace }}/nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes/.vcpkg-root && \
7z a -mx9 -aoa \
nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-${{ matrix.osversion }}-nes.7z \
nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes
- name: Release
uses: softprops/action-gh-release@v1
id: createrelease
with:
files: |
nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-${{ matrix.osversion }}-nes.7z
- name: Upload GitHub Actions artifact of vcpkg build logs
uses: actions/upload-artifact@v2
if: failure()
id: uploadlogs
with:
name: vcpkg-logs-${{ env.VCPKG_DEP_LIST }}
path: ${{ github.workspace }}/vcpkg/buildtrees/**/*.log
- name: Clean build artifacts
id: cleanbuildartifacts
if: always()
run: |
rm -rf nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes \
nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-${{ matrix.osversion }}-nes.7z \
${{ github.workspace }}/vcpkg/{buildtrees,downloads,packages}
- name: Remove docker image
id: removedockerimage
if: always()
run: |
test -n "$(docker image ls -q nes_dep_build_${{ matrix.osversion }})" && \
docker image rm $(docker image ls -q nes_dep_build_${{ matrix.osversion }}) || \
true
build-osx:
timeout-minutes: 360
name: osx ${{ matrix.arch }}
runs-on: [self-hosted, macOS, '${{ matrix.arch }}']
strategy:
fail-fast: false
matrix:
include:
- arch: "x64"
- arch: "arm64"
env:
VCPKG_DEP_LIST: ${{ matrix.arch }}-osx
VCPKG_FEATURE_FLAGS: -binarycaching
steps:
- uses: lukka/get-cmake@latest
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- name: Checkout vcokg submodules
working-directory: ${{ github.workspace }}/vcpkg/
run: git fetch --unshallow || true
- uses: actions/setup-python@v4
with:
python-version: "3.11"
architecture: x64
- name: Set output vars to the actual tag name
id: vars
run: echo ::set-output name=tag::${GITHUB_REF#refs/*/}
- name: Install vcpkg
id: bootstrapvcpkg
run: |
${{ github.workspace }}/vcpkg/bootstrap-vcpkg.sh -disableMetrics
shell: bash
- name: Install dependencies in manifest mode
id: installdeps
run: |
${{ github.workspace }}/vcpkg/vcpkg install --triplet=${{ env.VCPKG_DEP_LIST }}-nes --host-triplet=${{ env.VCPKG_DEP_LIST }}-nes --overlay-triplets=custom-triplets/ --overlay-ports=vcpkg-registry/ports
- name: Compress artifacts
id: compressdeps
run: |
mkdir nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes && \
mv ${{ github.workspace }}/vcpkg_installed nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes/installed && \
mkdir -p nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes/scripts/buildsystems && \
cp ${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake ${{ github.workspace }}/nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes/scripts/buildsystems/ && \
touch ${{ github.workspace }}/nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes/.vcpkg-root && \
7z a nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes.7z nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes -mx9 -aoa
- name: Release
uses: softprops/action-gh-release@v1
id: createrelease
with:
files: |
nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes.7z
- name: Upload GitHub Actions artifact of vcpkg build logs
uses: actions/upload-artifact@v2
if: failure()
id: uploadlogs
with:
name: vcpkg-logs-${{ env.VCPKG_DEP_LIST }}
path: ${{ github.workspace }}/vcpkg/buildtrees/**/*.log
- name: Clean build artifacts
id: cleanbuildartifacts
if: always()
run: |
rm -rf nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-nes \
nes-dependencies-${{ steps.vars.outputs.tag }}-${{ env.VCPKG_DEP_LIST }}-${{ matrix.osversion }}-nes.7z \
${{ github.workspace }}/vcpkg/{buildtrees,downloads,packages}