Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,29 @@ on:
pull_request:
branches: [ "main" ]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

jobs:
build:

runs-on: ubuntu-latest

strategy:
matrix:
node-version: [18.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
node-version: [22.x]

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm ci --no-audit --no-optional
- run: npm run lint
- run: npm run webpack:production
- run: npm test
88 changes: 66 additions & 22 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,35 +3,79 @@ name: ODIN Release
on:
release:
types: [published]
workflow_dispatch:

jobs:
nx:
runs-on: macos-12
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: write

strategy:
matrix:
node-version: [18.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
jobs:
release-linux:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
- uses: actions/checkout@v4

- name: Use Node.js 22.x
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
node-version: 22.x
cache: 'npm'

- name: Install Snapcraft
uses: samber/actions-snapcraft@v2

- name: Install Flatpak builder
run: |
sudo apt-get update
sudo apt-get install -y flatpak flatpak-builder
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y flathub org.freedesktop.Platform//24.08 org.freedesktop.Sdk//24.08

- run: npm ci --no-audit --no-optional
- run: npm i dmg-license
- run: npm run webpack:production
- name: Import OS-X certificates
run: chmod +x ./.github/workflows/add-osx-cert.sh && ./.github/workflows/add-osx-cert.sh

- name: Build and release Snap
run: npm run build:linux:snap
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Build and release Flatpak
run: npm run build:linux:flatpak
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Build AppImage
run: npm run build:linux:appimage
env:
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
- run: npm run release:ml
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Upload artifacts for manual runs
if: github.event_name == 'workflow_dispatch'
uses: actions/upload-artifact@v4
with:
name: linux-packages
path: |
binaries/*.snap
binaries/*.flatpak
binaries/*.AppImage

- name: Upload Linux artifacts to release
if: github.event_name == 'release'
uses: softprops/action-gh-release@v2
with:
files: |
binaries/*.snap
binaries/*.flatpak
binaries/*.AppImage
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Publish to Snap Store
if: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS != '' }}
run: snapcraft upload --release=stable binaries/*.snap
env:
APPLEID: ${{ secrets.APPLEID }}
APPLEIDPASS: ${{ secrets.APPLEIDPASS }}
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
28 changes: 27 additions & 1 deletion electron-builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,39 @@ mac:
linux:
target:
- target: AppImage
- target: snap
- target: flatpak
icon: 'build/icons'
category: 'Office'
files:
- 'dist'

snap:
confinement: strict
grade: stable
summary: "Open Source Command and Control Information System"
description: |
ODIN is an Open Source Command and Control Information System (C2IS)
for planning and conducting military or civilian operations.
plugs:
- default
- removable-media

flatpak:
runtime: org.freedesktop.Platform
runtimeVersion: "24.08"
sdk: org.freedesktop.Sdk
finishArgs:
- "--share=ipc"
- "--socket=x11"
- "--socket=wayland"
- "--socket=pulseaudio"
- "--share=network"
- "--device=dri"
- "--filesystem=home"

publish:
- provider: github
releaseType: release

electronVersion: 38.2.1
electronVersion: 38.8.0
Loading