Create codeql.yml #993
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: Build Notepad Next | |
on: | |
push: | |
branches: | |
- master | |
tags: | |
- '*' | |
pull_request: | |
env: | |
QT_RELEASE_VER: 6.5 | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-20.04, windows-latest, macos-latest] | |
qt_version: ["5.15", "6.5", "6.6"] | |
exclude: | |
- os: macos-latest | |
qt_version: "5.15" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install Qt | |
uses: jurplel/install-qt-action@v4 | |
with: | |
version: ${{ matrix.qt_version }} | |
modules: ${{ matrix.qt_version != '5.15' && 'qt5compat' || '' }} | |
cache: true | |
- name: Get number of CPU cores | |
if: runner.os != 'Windows' | |
uses: SimenB/github-actions-cpu-cores@v2 | |
id: cpu-cores | |
- name: Setup Visual Studio Tools | |
if: runner.os == 'Windows' | |
uses: egor-tensin/vs-shell@v2 | |
with: | |
arch: x64 | |
- name: Install jom | |
if: runner.os == 'Windows' | |
run: choco install jom | |
- name: Setup Linux | |
if: runner.os == 'Linux' | |
run: | | |
echo "DISTRIBUTION=AppImage" >> "$GITHUB_ENV" | |
sudo apt-get install libxkbcommon-dev libxkbcommon-x11-0 fuse libxcb-cursor-dev | |
- name: Run QMake | |
run: | | |
mkdir build | |
cd build | |
qmake ../src/NotepadNext.pro "DISTRIBUTION=$DISTRIBUTION" | |
- name: Compile for Windows | |
if: runner.os == 'Windows' | |
run: | | |
cd build | |
jom | |
- name: Compile for Linux/macOS | |
if: runner.os != 'Windows' | |
run: | | |
cd build | |
make -j${{ steps.cpu-cores.outputs.count }} | |
- name: Create Windows zip Package | |
if: runner.os == 'Windows' | |
run: | | |
cd build | |
jom package | |
- name: Create Windows Installer | |
if: runner.os == 'Windows' | |
run: | | |
cd build | |
jom installer | |
- name: Create DMG | |
if: runner.os == 'macOS' | |
run: | | |
cd build | |
make dmg | |
- name: Create AppImage | |
if: runner.os == 'Linux' | |
run: | | |
cd build | |
make appimage | |
- name: Upload Windows zip Package | |
uses: actions/upload-artifact@v4 | |
if: runner.os == 'Windows' | |
with: | |
name: NotepadNext-Windows-Qt${{ matrix.qt_version }}-Zip | |
path: ${{ github.workspace }}/build/package/ | |
- name: Upload Windows Installer | |
uses: actions/upload-artifact@v4 | |
if: runner.os == 'Windows' | |
with: | |
name: NotepadNext-Windows-Qt${{ matrix.qt_version }}-Installer | |
path: ${{ github.workspace }}/installer/NotepadNext*.exe | |
- name: Upload macOS dmg | |
uses: actions/upload-artifact@v4 | |
if: runner.os == 'macOS' | |
with: | |
name: NotepadNext-macOS-Qt${{ matrix.qt_version }} | |
path: ${{ github.workspace }}/build/NotepadNext/NotepadNext*.dmg | |
- name: Upload Linux AppImage | |
uses: actions/upload-artifact@v4 | |
if: runner.os == 'Linux' | |
with: | |
name: NotepadNext-Linux-Qt${{ matrix.qt_version }}-AppImage | |
path: ${{ github.workspace }}/build/NotepadNext/NotepadNext*.AppImage | |
github: | |
name: Draft GitHub Release | |
runs-on: ubuntu-latest | |
needs: [build] | |
if: github.repository == 'dail8859/NotepadNext' && github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Create Draft Release | |
run: | | |
gh release create ${{ github.ref_name }} --title ${{ github.ref_name }} --generate-notes --draft | |
- name: Download all artifacts | |
uses: actions/download-artifact@v4 | |
- name: Upload Windows Installer | |
run: | | |
gh release upload ${{ github.ref_name }} NotepadNext-Windows-Qt$QT_RELEASE_VER-Installer/NotepadNext-${{ github.ref_name }}-Installer.exe | |
# The artifact is unzipped, so need to zip it back up so it can be uploaded | |
- name: Upload Windows Zip | |
run: | | |
cd NotepadNext-Windows-Qt$QT_RELEASE_VER-Zip/ | |
zip -r ../NotepadNext-${{ github.ref_name }}-win64.zip . | |
cd .. | |
gh release upload ${{ github.ref_name }} NotepadNext-${{ github.ref_name }}-win64.zip | |
- name: Upload Linux AppImage | |
run: | | |
gh release upload ${{ github.ref_name }} NotepadNext-Linux-Qt$QT_RELEASE_VER-AppImage/NotepadNext-${{ github.ref_name }}-x86_64.AppImage | |
- name: Upload macOS App | |
run: | | |
gh release upload ${{ github.ref_name }} NotepadNext-macOS-Qt$QT_RELEASE_VER/NotepadNext-${{ github.ref_name }}.dmg | |