207 lines
6.2 KiB
YAML

name: CI
on:
push:
pull_request:
workflow_dispatch:
release:
types: [published]
env:
PROJECT_TYPE: UEFI
FORCE_INSTALL: 1
HAS_OPENSSL_BUILD: 1
HAS_OPENSSL_W32BUILD: 0
WERROR: 1
jobs:
build-macos:
name: Build macOS XCODE5
runs-on: macos-latest
env:
JOB_TYPE: BUILD
steps:
- uses: actions/checkout@v2
- name: Install Dependencies
run: brew install openssl mingw-w64
env:
HOMEBREW_NO_INSTALL_CLEANUP: 1
HOMEBREW_NO_AUTO_UPDATE: 1
- name: CI Bootstrap
run: |
src=$(/usr/bin/curl -Lfs https://raw.githubusercontent.com/acidanthera/ocbuild/master/ci-bootstrap.sh) && eval "$src" || exit 1
- run: ./build_duet.tool
- run: ./build_oc.tool
- name: Upload to Artifacts
uses: actions/upload-artifact@v2
with:
name: macOS XCODE5 Artifacts
path: Binaries/*.zip
- name: Upload to Release
if: github.event_name == 'release'
uses: svenstaro/upload-release-action@e74ff71f7d8a4c4745b560a485cc5fdb9b5b999d
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: Binaries/*.zip
tag: ${{ github.ref }}
file_glob: true
build-linux-clangpdb-gcc5:
name: Build Linux CLANGPDB/GCC5
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install nasm uuid-dev libssl-dev iasl
file="clang+llvm-9.0.1-x86_64-linux-gnu-ubuntu-16.04"
suf=".tar.xz"
curl -LO "https://github.com/llvm/llvm-project/releases/download/llvmorg-9.0.1/${file}${suf}" || exit 1
sum=$(shasum -a 256 "${file}${suf}" | cut -f1 -d' ')
expsum="1af280e96fec62acf5f3bb525e36baafe09f95f940dc9806e22809a83dfff4f8"
if [ "$sum" != "$expsum" ]; then echo "Invalid checksum $sum" ; exit 1 ; fi
tar -xf "${file}${suf}" || exit 1
echo "$(pwd)/${file}/bin" >> $GITHUB_PATH
- name: CI Bootstrap
run: |
src=$(/usr/bin/curl -Lfs https://raw.githubusercontent.com/acidanthera/ocbuild/master/ci-bootstrap.sh) && eval "$src" || exit 1
- run: ./build_duet.tool
- run: ./build_oc.tool
- name: Upload to Artifacts
uses: actions/upload-artifact@v2
with:
name: Linux CLANGPDB-GCC5 Artifacts
path: Binaries/*.zip
build-linux-clang38:
name: Build Linux CLANG38
runs-on: ubuntu-latest
env:
TOOLCHAINS: CLANG38
steps:
- uses: actions/checkout@v2
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install nasm uuid-dev iasl clang-8 llvm-8-dev doxygen texlive texlive-latex-extra
echo "/usr/lib/llvm-8/bin" >> $GITHUB_PATH
- name: CI Bootstrap
run: |
src=$(/usr/bin/curl -Lfs https://raw.githubusercontent.com/acidanthera/ocbuild/master/ci-bootstrap.sh) && eval "$src" || exit 1
- run: ./build_duet.tool
- run: ./build_oc.tool
- name: Build Docs
run: |
abort() { tail -200 log.txt ; exit 1 ; }
doxygen Doxyfile &> log.txt || abort
cd Doxy/latex || abort
make pdf &> log.txt || abort
- name: Upload to Artifacts
uses: actions/upload-artifact@v2
with:
name: Linux CLANG38 Artifacts
path: Binaries/*.zip
build-windows:
name: Build Windows VS2017
runs-on: windows-latest
env:
HAS_OPENSSL_BUILD: 0
CC: gcc
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v2
- name: Install Dependencies
run: |
choco install microsoft-build-tools visualcpp-build-tools make nasm zip --no-progress
choco install iasl --no-progress --version=2017.11.10
- name: CI Bootstrap
run: |
src=$(curl -Lfs https://raw.githubusercontent.com/acidanthera/ocbuild/master/ci-bootstrap.sh) && eval "$src" || exit 1
- run: ./build_duet.tool
- run: ./build_oc.tool
- name: Upload to Artifacts
uses: actions/upload-artifact@v2
with:
name: Windows Artifacts
path: Binaries/*.zip
analyze-scripts:
name: Analyze Scripts
runs-on: macos-latest
env:
JOB_TYPE: ANALYZE
steps:
- uses: actions/checkout@v2
- name: Install Dependencies
run: |
brew install shellcheck
pip2 install pyyaml
env:
HOMEBREW_NO_INSTALL_CLEANUP: 1
- name: CI Bootstrap
run: |
src=$(/usr/bin/curl -Lfs https://raw.githubusercontent.com/acidanthera/ocbuild/master/ci-bootstrap.sh) && eval "$src" || exit 1
- name: Run shellcheck
run: find . \( -name "*.tool" -o -name "*.command" -o -name "*.sh" \) -exec sh -c 'for TargetFile; do shellcheck --severity=info "${TargetFile}" || exit 1; done' sh {} +
- name: Check AppleModels
working-directory: AppleModels
run: |
pwd
ls
python2 ./update_generated.py || exit 1
if [ "$(git status --porcelain)" != "" ]; then echo "DataBase desync"; exit 1 ; fi
- name: Lint Samples
run: |
plutil -lint Docs/Sample.plist || exit 1
plutil -lint Docs/SampleCustom.plist || exit 1
analyze-coverity:
name: Analyze Coverity
runs-on: macos-latest
env:
JOB_TYPE: COVERITY
if: github.repository_owner == 'acidanthera' && github.event_name != 'pull_request'
steps:
- uses: actions/checkout@v2
- name: CI Bootstrap
run: |
src=$(/usr/bin/curl -Lfs https://raw.githubusercontent.com/acidanthera/ocbuild/master/ci-bootstrap.sh) && eval "$src" || exit 1
- run: ./build_oc.tool --skip-build --skip-package
- name: Run Coverity
working-directory: UDK
run: |
src=$(/usr/bin/curl -Lfs https://raw.githubusercontent.com/acidanthera/ocbuild/master/coverity/covstrap.sh) && eval "$src" || exit 1
env:
COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
COVERITY_SCAN_EMAIL: ${{ secrets.COVERITY_SCAN_EMAIL }}
COVERITY_BUILD_COMMAND: ../build_oc.tool --skip-tests --skip-package RELEASE