build: add add-copyright.js #697
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: C/C++ CI | |
on: [push, pull_request] | |
jobs: | |
build: | |
timeout-minutes: 10 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ['ubuntu-latest', 'windows-latest'] | |
runs-on: ${{ matrix.os }} | |
name: "Builds binaries on ${{ matrix.os }}" | |
steps: | |
- uses: actions/checkout@v1 | |
- uses: xmake-io/github-action-setup-xmake@v1 | |
- name: Update git submodule | |
run: | | |
git submodule update --init | |
- name: Restore xmake packages | |
uses: actions/cache@v3 | |
with: | |
path: ~/.xmake/.cache/packages | |
key: ${{ runner.os }}-xmake-packages | |
- name: Install tools | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update --fix-missing | |
sudo apt-get install debhelper lcov valgrind -yy | |
- name: Configure for coverage mode | |
if: runner.os == 'Linux' | |
run: xmake config -m coverage -y -v --ci-env=y | |
- name: Configure | |
if: runner.os == 'Windows' | |
run: xmake config -y -v -k shared --ci-env=y | |
- name: Build | |
run: xmake -w | |
- name: Run YUtil tests | |
if: runner.os == 'Windows' | |
run: | | |
xmake build yutil_test | |
xmake run yutil_test | |
- name: Run PandaGL tests | |
run: xmake run pandagl_tests | |
- name: Run LibCSS tests | |
if: runner.os == 'Windows' | |
run: xmake run libcss_tests | |
- name: Run LibUIRouter tests | |
if: runner.os == 'Windows' | |
run: xmake run libui-router-tests | |
- name: Run LibI18n tests | |
if: runner.os == 'Windows' | |
run: xmake run libi18n-tests | |
- name: Run LCUI tests | |
if: runner.os == 'Windows' | |
run: xmake run lcui_tests | |
- name: Run YUtil tests with memcheck | |
if: runner.os == 'Linux' | |
run: | | |
xmake build yutil_test | |
xmake run yutil_test --memcheck | |
- name: Run LibCSS tests with memcheck | |
if: runner.os == 'Linux' | |
run: xmake run libcss_tests --memcheck | |
- name: Run LibUIRouter tests with memcheck | |
if: runner.os == 'Linux' | |
run: xmake run libui-router-tests --memcheck | |
- name: Run LibI18n tests with memcheck | |
if: runner.os == 'Linux' | |
run: xmake run libi18n-tests --memcheck | |
- name: Run LCUI tests with memcheck | |
if: runner.os == 'Linux' | |
run: xmake run lcui_tests --memcheck | |
- name: Upload reports to Codecov | |
if: runner.os == 'Linux' | |
run: bash <(curl -s https://codecov.io/bash); | |
- name: Reconfigure for release | |
if: runner.os == 'Linux' | |
run: xmake config -y -v -k shared --ci-env=y | |
- name: Package | |
run: | | |
xmake package -v | |
xmake install -o dist/lcui-package | |
- name: Package examples | |
run: | | |
cd examples | |
xmake -P . -v -y | |
xmake install -P . -o ../dist/lcui-examples | |
mv ../dist/lcui-examples/bin/* ../dist/lcui-examples/ | |
rm -r ../dist/lcui-examples/bin | |
- uses: actions/upload-artifact@master | |
with: | |
name: lcui-package (${{ runner.os }}) | |
path: | | |
dist/lcui-package | |
- uses: actions/upload-artifact@master | |
with: | |
name: lcui-examples (${{ runner.os }}) | |
path: | | |
dist/lcui-examples | |
- name: Cache xmake packages | |
uses: actions/cache@v3 | |
with: | |
path: ~/.xmake/.cache/packages | |
key: ${{ runner.os }}-xmake-packages | |
release: | |
if: startsWith(github.ref, 'refs/tags/v') | |
runs-on: ubuntu-latest | |
needs: [build] | |
env: | |
ARTIFACT_DIR: ./release | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
path: ${{ env.ARTIFACT_DIR }} | |
- name: Set release version | |
run: python ./.github/scripts/get_release_version.py | |
- name: Create release notes | |
run: python ./.github/scripts/get_release_notes.py | |
- name: Read package.json | |
id: release_notes | |
uses: juliangruber/read-file-action@v1 | |
with: | |
path: RELEASE_NOTES.md | |
trim: false | |
- name: Create release | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
body: ${{ steps.release_notes.outputs.content }} | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
release_name: LCUI ${{ env.REL_VERSION }} | |
tag: ${{ github.ref }} | |
file: ${{ env.ARTIFACT_DIR }}/* | |
overwrite: true | |
file_glob: true |