name: Build AbysiusCodium
on:
push:
branches: [main, develop]
tags: ['v*']
pull_request:
branches: [main]
workflow_dispatch:
inputs:
vscode_tag:
description: 'VS Code upstream tag to build from'
required: true
default: '1.121.0'
env:
MS_VSCODE_TAG: ${{ github.event.inputs.vscode_tag || '1.121.0' }}
NODE_VERSION: '20.18.0'
jobs:
build-linux:
runs-on: ubuntu-latest
strategy:
matrix:
arch: [x64, arm64, armhf]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install build dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
libx11-dev libxkbfile-dev libsecret-1-dev \
fakeroot rpm dpkg-dev debhelper \
gcc-aarch64-linux-gnu g++-aarch64-linux-gnu \
gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
- name: Build Extension
run: |
cd extensions/abysius-ai
npm ci
npm run compile
- name: Build AbysiusCodium
run: |
chmod +x build/build.sh
./build/build.sh --platform linux --arch ${{ matrix.arch }} --tag ${{ env.MS_VSCODE_TAG }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: abysius-codium-linux-${{ matrix.arch }}
path: releases/*
if-no-files-found: warn
build-darwin:
runs-on: macos-latest
strategy:
matrix:
arch: [x64, arm64]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Build Extension
run: |
cd extensions/abysius-ai
npm ci
npm run compile
- name: Build AbysiusCodium
run: |
chmod +x build/build.sh
./build/build.sh --platform darwin --arch ${{ matrix.arch }} --tag ${{ env.MS_VSCODE_TAG }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: abysius-codium-darwin-${{ matrix.arch }}
path: releases/*
if-no-files-found: warn
build-windows:
runs-on: windows-latest
strategy:
matrix:
arch: [x64, arm64]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- name: Build Extension
run: |
cd extensions\abysius-ai
npm ci
npm run compile
- name: Build AbysiusCodium
shell: bash
run: |
bash build/build.sh --platform win32 --arch ${{ matrix.arch }} --tag ${{ env.MS_VSCODE_TAG }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: abysius-codium-win32-${{ matrix.arch }}
path: releases/*
if-no-files-found: warn
release:
needs: [build-linux, build-darwin, build-windows]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: releases
pattern: abysius-codium-*
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: releases/**/*
generate_release_notes: true
draft: true
prerelease: ${{ contains(github.ref, '-alpha') || contains(github.ref, '-beta') || contains(github.ref, '-rc') }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}