Browse Source

CircleCI to GHA (#6947)

pull/6948/head
Daniel Thamdrup 2 years ago committed by GitHub
parent
commit
795314d803
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 59
      .circleci/config.yml
  2. 90
      .github/workflows/3ds.yml
  3. 64
      .github/workflows/amiga-m68k.yml
  4. 65
      .github/workflows/switch.yml
  5. 67
      .github/workflows/vita.yml

59
.circleci/config.yml

@ -1,59 +0,0 @@
version: 2
jobs:
switch:
docker:
- image: devkitpro/devkita64:latest
working_directory: ~/repo
steps:
- checkout
- run: apt-get update -y
- run: apt-get install -y gettext
- run: /opt/devkitpro/portlibs/switch/bin/aarch64-none-elf-cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo
- run: cmake --build build -j 2
- store_artifacts: {path: ./build/devilutionx.nro, destination: devilutionx.nro}
3ds:
docker:
- image: devkitpro/devkitarm:latest
working_directory: ~/repo
steps:
- checkout
- run: apt-get update -y
- run: apt-get install -y ffmpeg gettext
- run: wget https://github.com/diasurgical/bannertool/releases/download/1.2.0/bannertool.zip
- run: unzip -j "bannertool.zip" "linux-x86_64/bannertool" -d "/opt/devkitpro/tools/bin"
- run: wget https://github.com/3DSGuy/Project_CTR/releases/download/makerom-v0.18/makerom-v0.18-ubuntu_x86_64.zip
- run: unzip "makerom-v0.18-ubuntu_x86_64.zip" "makerom" -d "/opt/devkitpro/tools/bin"
- run: sudo chmod +rx /opt/devkitpro/tools/bin/makerom
- run: cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/3DS.cmake
- run: cmake --build build -j 2
- store_artifacts: {path: ./build/devilutionx.3dsx, destination: devilutionx.3dsx}
- store_artifacts: {path: ./build/devilutionx.cia, destination: devilutionx.cia}
amigaos-m68k:
docker:
- image: amigadev/crosstools:m68k-amigaos-gcc10
working_directory: ~/repo
steps:
- checkout
- run: Packaging/amiga/prep.sh
- run: cmake -S. -Bbuild -DM68K_CPU=68040 -DM68K_FPU=hard -DM68K_COMMON="-s -fbbb=- -ffast-math -O2"
- run: cd build && make -j2
- store_artifacts: {path: ./build/devilutionx, destination: devilutionx_m68k}
vita:
docker:
- image: vitasdk/vitasdk
working_directory: ~/repo
steps:
- checkout
- run: apk --no-cache add git cmake ninja bash pkgconfig gettext
- run: cmake -S. -Bbuild -GNinja -DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo
- run: cmake --build build -j 2
- store_artifacts: {path: ./build/devilutionx.vpk, destination: devilutionx.vpk}
workflows:
version: 2
testflow:
jobs:
- switch
- 3ds
- amigaos-m68k
- vita

90
.github/workflows/3ds.yml

@ -0,0 +1,90 @@
---
name: Nintendo 3DS
on: # yamllint disable-line rule:truthy
push:
branches:
- master
paths-ignore:
- '*.md'
- 'docs/**'
pull_request:
types: [opened, synchronize]
paths-ignore:
- '*.md'
- 'docs/**'
release:
types: [published]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
container: devkitpro/devkitarm:latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install dependencies
run: |
apt-get update
apt-get install -y \
ffmpeg \
gettext
- name: Get external dependencies
run: |
wget https://github.com/diasurgical/bannertool/releases/download/1.2.0/bannertool.zip
unzip -j "bannertool.zip" "linux-x86_64/bannertool" -d "/opt/devkitpro/tools/bin"
wget https://github.com/3DSGuy/Project_CTR/releases/download/makerom-v0.18/makerom-v0.18-ubuntu_x86_64.zip
unzip "makerom-v0.18-ubuntu_x86_64.zip" "makerom" -d "/opt/devkitpro/tools/bin"
chmod a+x /opt/devkitpro/tools/bin/makerom
- name: Configure CMake
run: |
cmake \
-S . \
-B build \
-G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/3DS.cmake
- name: Build DevilutionX
run: cmake --build build
- name: Upload 3dsx Package
if: ${{ !env.ACT }}
uses: actions/upload-artifact@v4
with:
name: devilutionx.3dsx
path: ./build/devilutionx.3dsx
- name: Upload cia Package
if: ${{ !env.ACT }}
uses: actions/upload-artifact@v4
with:
name: devilutionx.cia
path: ./build/devilutionx.cia
- name: Update Release 3dsx
if: ${{ github.event_name == 'release' && !env.ACT }}
uses: svenstaro/upload-release-action@v2
with:
asset_name: devilutionx-3ds.3dsx
file: ./build/devilutionx.3dsx
overwrite: true
- name: Update Release cia
if: ${{ github.event_name == 'release' && !env.ACT }}
uses: svenstaro/upload-release-action@v2
with:
asset_name: devilutionx-3ds.cia
file: ./build/devilutionx.cia
overwrite: true
...

64
.github/workflows/amiga-m68k.yml

@ -0,0 +1,64 @@
---
name: Amiga M68K
on: # yamllint disable-line rule:truthy
push:
branches:
- master
paths-ignore:
- '*.md'
- 'docs/**'
pull_request:
types: [opened, synchronize]
paths-ignore:
- '*.md'
- 'docs/**'
release:
types: [published]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
container: amigadev/crosstools:m68k-amigaos-gcc10
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Run prep.sh script
run: ./Packaging/amiga/prep.sh
- name: Configure CMake
run: |
cmake \
-S . \
-B build \
-G Ninja \
-D M68K_COMMON="-s -fbbb=- -ffast-math -O2" \
-D M68K_CPU=68040 \
-D M68K_FPU=hard
- name: Build DevilutionX
run: cmake --build build
- name: Upload Package
if: ${{ !env.ACT }}
uses: actions/upload-artifact@v4
with:
name: devilutionx_m68k
path: ./build/devilutionx
- name: Update Release
if: ${{ github.event_name == 'release' && !env.ACT }}
uses: svenstaro/upload-release-action@v2
with:
asset_name: devilutionx-amiga-m68k
file: ./build/devilutionx
overwrite: true
...

65
.github/workflows/switch.yml

@ -0,0 +1,65 @@
---
name: Nintendo Switch
on: # yamllint disable-line rule:truthy
push:
branches:
- master
paths-ignore:
- '*.md'
- 'docs/**'
pull_request:
types: [opened, synchronize]
paths-ignore:
- '*.md'
- 'docs/**'
release:
types: [published]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
container: devkitpro/devkita64:latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install dependencies
run: |
apt-get update && \
apt-get install -y --no-install-recommends --no-install-suggests \
gettext
- name: Configure CMake
run: |
cmake \
-S . \
-B build \
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
-D CMAKE_TOOLCHAIN_FILE=/opt/devkitpro/cmake/Switch.cmake
- name: Build DevilutionX
run: cmake --build build -j$(nproc)
- name: Upload Package
if: ${{ !env.ACT }}
uses: actions/upload-artifact@v4
with:
name: devilutionx.nro
path: ./build/devilutionx.nro
- name: Update Release
if: ${{ github.event_name == 'release' && !env.ACT }}
uses: svenstaro/upload-release-action@v2
with:
asset_name: devilutionx-switch.nro
file: ./build/devilutionx.nro
overwrite: true
...

67
.github/workflows/vita.yml

@ -0,0 +1,67 @@
---
name: Sony PlayStation Vita
on: # yamllint disable-line rule:truthy
push:
branches:
- master
paths-ignore:
- '*.md'
- 'docs/**'
pull_request:
types: [opened, synchronize]
paths-ignore:
- '*.md'
- 'docs/**'
release:
types: [published]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
container: vitasdk/vitasdk:latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install dependencies
run: |
apk add \
gettext \
git \
samurai
- name: Configure CMake
run: |
cmake \
-S . \
-B build \
-G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_TOOLCHAIN_FILE=${VITASDK}/share/vita.toolchain.cmake
- name: Build DevilutionX
run: cmake --build build
- name: Upload Package
if: ${{ !env.ACT }}
uses: actions/upload-artifact@v4
with:
name: devilutionx.vpk
path: ./build/devilutionx.vpk
- name: Update Release
if: ${{ github.event_name == 'release' && !env.ACT }}
uses: svenstaro/upload-release-action@v2
with:
asset_name: devilutionx-vita.vpk
file: ./build/devilutionx.vpk
overwrite: true
...
Loading…
Cancel
Save