You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.0 KiB
97 lines
3.0 KiB
name: Linux x86_64 (x86_64-linux-gnu) |
|
|
|
on: |
|
push: |
|
branches: |
|
- master |
|
paths-ignore: |
|
- '*.md' |
|
pull_request: |
|
types: [opened, synchronize] |
|
paths-ignore: |
|
- '*.md' |
|
release: |
|
types: [published] |
|
paths-ignore: |
|
- '*.md' |
|
workflow_dispatch: |
|
|
|
concurrency: |
|
group: ${{ github.workflow }}-${{ github.ref }} |
|
cancel-in-progress: true |
|
|
|
jobs: |
|
build: |
|
runs-on: ubuntu-20.04 |
|
steps: |
|
- name: Checkout |
|
uses: actions/checkout@v3 |
|
with: |
|
fetch-depth: 0 |
|
|
|
- name: Add gcc repo |
|
run: sudo add-apt-repository ppa:ubuntu-toolchain-r/test |
|
|
|
# Installs dependencies and runs `sudo apt-get update` as part of it. |
|
- name: Install dependencies |
|
run: Packaging/nix/debian-host-prep.sh --no-gcc |
|
|
|
- name: Install gcc-13 |
|
run: | |
|
sudo apt-get install -yq --no-install-recommends gcc-13 g++-13 && \ |
|
sudo update-alternatives --install \ |
|
/usr/bin/gcc gcc /usr/bin/gcc-13 13 \ |
|
--slave /usr/bin/g++ g++ /usr/bin/g++-13 |
|
|
|
- name: Create Build Environment |
|
run: Packaging/nix/debian-host-prep.sh --no-gcc |
|
|
|
- name: Cache CMake build folder |
|
uses: actions/cache@v3 |
|
with: |
|
path: build |
|
key: ${{ github.workflow }}-v5-${{ github.sha }} |
|
restore-keys: ${{ github.workflow }}-v5- |
|
|
|
- name: Build |
|
working-directory: ${{github.workspace}} |
|
shell: bash |
|
env: |
|
CMAKE_BUILD_TYPE: ${{github.event_name == 'release' && 'Release' || 'RelWithDebInfo'}} |
|
# We set DEVILUTIONX_SYSTEM_LIBFMT=OFF because its soversion changes frequently. |
|
# We set DEVILUTIONX_SYSTEM_SIMPLEINI=OFF because we require v4.19+, still missing from many distributions. |
|
run: | |
|
cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=${{env.CMAKE_BUILD_TYPE}} -DCMAKE_INSTALL_PREFIX=/usr -DCPACK=ON \ |
|
-DDISCORD_INTEGRATION=ON -DBUILD_TESTING=OFF -DDEVILUTIONX_SYSTEM_LIBFMT=OFF -DDEVILUTIONX_SYSTEM_SIMPLEINI=OFF && \ |
|
cmake --build build -j $(getconf _NPROCESSORS_ONLN) --target package |
|
|
|
- name: Package |
|
run: Packaging/nix/LinuxReleasePackaging.sh && mv devilutionx.tar.xz devilutionx-x86_64-linux-gnu.tar.xz |
|
|
|
- name: Package AppImage |
|
run: Packaging/nix/AppImage.sh && mv devilutionx.appimage devilutionx-x86_64-linux-gnu.appimage |
|
|
|
- name: Upload Package |
|
if: ${{ !env.ACT }} |
|
uses: actions/upload-artifact@v3 |
|
with: |
|
name: devilutionx-x86_64-linux-gnu.tar.xz |
|
path: devilutionx-x86_64-linux-gnu.tar.xz |
|
|
|
- name: Upload AppImage |
|
if: ${{ !env.ACT }} |
|
uses: actions/upload-artifact@v3 |
|
with: |
|
name: devilutionx-x86_64-linux-gnu.appimage |
|
path: devilutionx-x86_64-linux-gnu.appimage |
|
|
|
- name: Update Release |
|
if: ${{ github.event_name == 'release' && !env.ACT }} |
|
uses: svenstaro/upload-release-action@v2 |
|
with: |
|
file: devilutionx-x86_64-linux-gnu.* |
|
file_glob: true |
|
overwrite: true |
|
|
|
- name: Clean up artifacts |
|
run: rm -rf build/_CPack_Packages build/package build/*.deb build/*.rpm build/*.appimage build/*.tar.xz
|
|
|