Skip to content

All

All #4390

Workflow file for this run

name: All
on:
schedule:
- cron: '0 3 * * *'
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
permissions: read-all
env:
BUILD_COMMAND_LINUX: ./build.sh --verbose
BUILD_COMMAND_WINDOWS: .\build.bat --verbose
jobs:
codeql:
name: Analyze code
needs:
- darwin
- darwin-release
- linux
- linux-release
- windows
- windows-release
if: github.event_name=='push'||github.event_name=='pull_request'
runs-on: ubuntu-latest
permissions:
security-events: write
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup NASM
run: sudo apt install nasm
- name: Initialize codeql@1
uses: github/codeql-action/init@v2
with:
languages: cpp, javascript
- name: Build
run: ${{env.BUILD_COMMAND_LINUX}}
- name: Analyze
uses: github/codeql-action/analyze@v2
darwin:
name: Build darwin
if: github.event_name=='push'||github.event_name=='pull_request'
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup NASM
run: brew install nasm
- name: Build
run: ${{env.BUILD_COMMAND_LINUX}}
- name: Create bundle
run: ./src/_build/bundle.sh
- name: Store assets
uses: actions/upload-artifact@v3
with:
name: debug-darwin
path: darwin.zip
retention-days: 1
darwin-release:
name: Build darwin release
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup NASM
run: brew install nasm
- name: Build
run: ${{env.BUILD_COMMAND_LINUX}} --release
- name: Create bundle
run: ./src/_build/bundle.sh
- name: Store assets
uses: actions/upload-artifact@v3
with:
name: release-darwin
path: darwin.zip
retention-days: 1
darwin-test:
name: Test darwin
needs:
- darwin
- darwin-release
if: github.event_name=='push'||github.event_name=='pull_request'
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download debug build
uses: actions/download-artifact@v3
with:
name: debug-darwin
path: build
- name: Unpack build
run: unzip -o build/darwin.zip -d build
- name: Execute tests
run: build/sll tests/_runner.sll
linux:
name: Build linux
if: github.event_name=='push'||github.event_name=='pull_request'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup NASM
run: sudo apt install nasm
- name: Build
run: ${{env.BUILD_COMMAND_LINUX}}
linux-release:
name: Build linux release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup NASM
run: sudo apt install nasm
- name: Build
run: ${{env.BUILD_COMMAND_LINUX}} --release
- name: Create bundle
run: ./src/_build/bundle.sh
- name: Store assets
uses: actions/upload-artifact@v3
with:
name: release-linux
path: linux.zip
retention-days: 1
linux-test:
name: Test linux
needs:
- linux
- linux-release
if: github.event_name=='push'||github.event_name=='pull_request'
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup environment
run: sudo apt install nasm lcov
- name: Build
run: ${{env.BUILD_COMMAND_LINUX}} --coverage
- name: Delete previous coverage
run: rm -f build/objects/*.gcda
- name: Execute tests
run: build/sll tests/_runner.sll
- name: Generate coverage report
run: |
lcov -c -d build/objects -o coverage.info
lcov -r coverage.info -o coverage.info "/usr/*"
- name: Upload coverage
uses: coverallsapp/github-action@v1.2.4
with:
github-token: ${{secrets.GITHUB_TOKEN}}
file: coverage.info
nightly-release:
name: Create nighly release
needs:
- darwin-release
- linux-release
- windows-release
if: github.event_name=='schedule'
runs-on: ubuntu-latest
steps:
- name: Trigger nightly release
run: ${{secrets.PACKAGE_SERVER_NIGHTLY_UPDATE_COMMAND}}
release:
name: Create release
needs:
- darwin-release
- linux-release
- windows-release
if: github.event_name=='workflow_dispatch'&&github.actor=='krzem5'
runs-on: ubuntu-latest
steps:
- name: Trigger release
run: ${{secrets.PACKAGE_SERVER_UPDATE_COMMAND}}
windows:
name: Build windows
if: github.event_name=='push'||github.event_name=='pull_request'
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup environment
run: src\_build\setup_win.ps1
- name: Build
run: ${{env.BUILD_COMMAND_WINDOWS}}
shell: cmd
- name: Create bundle
run: src\_build\bundle.ps1
shell: powershell
- name: Store assets
uses: actions/upload-artifact@v3
with:
name: debug-windows
path: windows.zip
retention-days: 1
windows-release:
name: Build windows release
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup environment
run: src\_build\setup_win.ps1
- name: Build
run: ${{env.BUILD_COMMAND_WINDOWS}} --release
shell: cmd
- name: Create bundle
run: src\_build\bundle.ps1
shell: powershell
- name: Store assets
uses: actions/upload-artifact@v3
with:
name: release-windows
path: windows.zip
retention-days: 1
windows-test:
name: Test windows
needs:
- windows
- windows-release
if: github.event_name=='push'||github.event_name=='pull_request'
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download debug build
uses: actions/download-artifact@v3
with:
name: debug-windows
path: build
- name: Unpack build
run: |
Expand-Archive -Force build\windows.zip build\
exit 0
shell: powershell
- name: Execute tests
run: build/sll.exe tests/_runner.sll