Skip to content

CI Release

CI Release #210

Workflow file for this run

name: "CI Release"
on:
workflow_run:
workflows:
- "CI build"
types:
- "completed"
jobs:
# Generate and upload executables to Github releases
generate-upload-tarballs-linux-x64:
name: Generate and upload tarballs for Linux x64
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- run: sudo apt update && sudo apt install -y gcc g++ make git build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev libfontconfig1 fontconfig libfontconfig1-dev libfontconfig nsis p7zip
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.head_ref }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
- name: Get latest release tag
id: previoustag
uses: WyriHaximus/github-action-get-previous-tag@v1
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Download web uis
run: yarn ci:download-web-uis
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate tarballs
run: yarn generate:executable:tarballs:linux:x64
- name: Rename tarballs and installers
run: yarn ci:rename-tarballs
- name: Upload tarballs to release
uses: svenstaro/upload-release-action@v2
with:
file: "*.tar.gz"
file_glob: true
tag: ${{ steps.previoustag.outputs.tag }}
overwrite: true
generate-upload-tarballs-macos-x64-arm64:
name: Generate and upload tarballs for Macos (x64 + arm64)
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: macos-latest # will use arm64
strategy:
matrix:
arch: [x64, arm64]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.head_ref }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
- name: Get latest release tag
id: previoustag
uses: WyriHaximus/github-action-get-previous-tag@v1
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Download web uis
run: yarn ci:download-web-uis
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate tarballs
run: yarn generate:executable:tarballs:macos:${{ matrix.arch }}
- name: Rename tarballs and installers
run: yarn ci:rename-tarballs
- name: Upload tarballs to release
uses: svenstaro/upload-release-action@v2
with:
file: "*.tar.gz"
file_glob: true
tag: ${{ steps.previoustag.outputs.tag }}
overwrite: true
generate-upload-windows-installers:
name: Generate and upload windows installers
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.head_ref }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
- name: Get latest release tag
id: previoustag
uses: WyriHaximus/github-action-get-previous-tag@v1
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Download web uis
run: yarn ci:download-web-uis
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate Windows installer
run: yarn generate:installer:windows
shell: bash
# You can't use oclif pack on windows, so we're skipping it for now
# - name: Generate Windows tarballs
# run: yarn generate:executable:tarballs:windows
- name: Rename tarballs and installers
run: yarn ci:rename-tarballs
- name: Upload windows installers to release
uses: svenstaro/upload-release-action@v2
with:
file: "*.exe"
file_glob: true
tag: ${{ steps.previoustag.outputs.tag }}
overwrite: true
generate-upload-tarballs-linux-arm64:
name: Generate and upload linux arm64 tarballs
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.head_ref }}
- name: "Get latest release tag"
id: previoustag
uses: "WyriHaximus/github-action-get-previous-tag@v1"
- uses: pguyot/arm-runner-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
base_image: raspios_lite_arm64:latest
cpu_info: cpuinfo/raspberrypi_zero2_w_arm64
image_additional_mb: 2048
import_github_env: true
bind_mount_repository: true
commands: |
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg gcc g++ make git build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev libfontconfig1 fontconfig libfontconfig1-dev libfontconfig
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
npm install --global yarn
yarn install --frozen-lockfile
yarn ci:download-web-uis
yarn generate:executable:tarballs:linux:arm64
yarn ci:rename-tarballs
- name: Upload tarballs to release
uses: svenstaro/upload-release-action@v2
with:
file: "*.tar.gz"
file_glob: true
tag: ${{ steps.previoustag.outputs.tag }}
overwrite: true