Skip to content

Merge pull request #547 from Sienci-Labs/typescript-conversion #424

Merge pull request #547 from Sienci-Labs/typescript-conversion

Merge pull request #547 from Sienci-Labs/typescript-conversion #424

Workflow file for this run

name: CI
on:
push:
# Sequence of patterns matched against refs/heads
branches:
- master
- dev
- CI_update
# Sequence of patterns matched against refs/tags
tags:
- '*'
pull_request:
branches: [ "master" ]
jobs:
build-linux:
name: Build Linux packages
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
env:
GITHUB_TOKEN: ${{ secrets.CI_TOKEN }}
NODE_OPTIONS: --max-old-space-size=8192
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Environment variables
run: |
# https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables
echo "• GITHUB_REF_NAME=$GITHUB_REF_NAME"
echo "• GITHUB_REF_TYPE=$GITHUB_REF_TYPE" # `branch` or `tag`
echo "• GITHUB_RUN_NUMBER=$GITHUB_RUN_NUMBER"
echo "• GITHUB_SHA=$GITHUB_SHA"
echo "• RUNNER_ARCH=$RUNNER_ARCH"
echo "• RUNNER_NAME=$RUNNER_NAME"
echo "• RUNNER_OS=$RUNNER_OS"
echo "• RUNNER_TEMP=$RUNNER_TEMP"
echo "• RUNNER_TOOL_CACHE=$RUNNER_TOOL_CACHE"
- name: Install Yarn package manager
run: |
npm install -g yarn
yarn global add node-gyp
- name: Install necessary dependencies and perform initial checks
run: |
yarn install
yarn lint
- name: Run "build" script
if: github.ref_type == 'tag'
run: yarn run build
- name: Run "build-latest" script
if: github.ref_type == 'branch'
run: yarn run build-latest
- name: Build Linux binaries
run: |
yarn run build:linux
- name: Prepare release assets
shell: bash
run: |
GIT_COMMIT_LOG=`git log -1 --format='%ci %H %s'`
PRODUCT_NAME=gSender
PACKAGE_NAME=`node -e "console.log(require('./src/package.json').name)"`
PACKAGE_VERSION=`node -e "console.log(require('./src/package.json').version)"`
mkdir -p releases/linux
ls -al output
cp -af "output/${PACKAGE_NAME}-${PACKAGE_VERSION}-x86_64.AppImage" "releases/linux/${PACKAGE_NAME}-${PACKAGE_VERSION}-Linux-Intel-64Bit.AppImage"
cp -af "output/${PACKAGE_NAME}-${PACKAGE_VERSION}-amd64.deb" "releases/linux/${PACKAGE_NAME}-${PACKAGE_VERSION}-Linux-Intel-64Bit.deb"
cp -af "output/${PACKAGE_NAME}-${PACKAGE_VERSION}-arm64.AppImage" "releases/linux/${PACKAGE_NAME}-${PACKAGE_VERSION}-Linux-ARM-64Bit.AppImage"
cp -af "output/${PACKAGE_NAME}-${PACKAGE_VERSION}-arm64.deb" "releases/linux/${PACKAGE_NAME}-${PACKAGE_VERSION}-Linux-ARM-64Bit.deb"
ls -al output releases/linux
if [[ "$GITHUB_REF_TYPE" == "branch" && "$GITHUB_REF_NAME" == "master" ]]; then
yarn github-release delete \
--owner=gSender \
--repo=gsender \
--tag="${GITHUB_REF_NAME}-latest" \
--release-name="${GITHUB_REF_NAME}" \
"*-linux*";
yarn github-release upload \
--owner=gSender \
--repo=gsender \
--tag="${GITHUB_REF_NAME}-latest" \
--release-name="${GITHUB_REF_NAME}" \
--body="${GIT_COMMIT_LOG}" \
releases/linux/*;
fi
#- name: Upload release assets
# uses: actions/github-script@v6
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}
# script: |
# // https://github.com/actions/upload-release-asset/issues/47#issuecomment-659071145
# console.log('environment:', process.versions);
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
releases/linux/*
prerelease: true
draft: true
build-macos:
name: Build macOS packages
runs-on: macos-latest
strategy:
matrix:
node-version: [20.x]
env:
GITHUB_TOKEN: ${{ secrets.CI_TOKEN }}
NODE_OPTIONS: --max-old-space-size=8192
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Environment variables
run: |
# https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables
echo "• GITHUB_REF_NAME=$GITHUB_REF_NAME"
echo "• GITHUB_REF_TYPE=$GITHUB_REF_TYPE" # `branch` or `tag`
echo "• GITHUB_RUN_NUMBER=$GITHUB_RUN_NUMBER"
echo "• GITHUB_SHA=$GITHUB_SHA"
echo "• RUNNER_ARCH=$RUNNER_ARCH"
echo "• RUNNER_NAME=$RUNNER_NAME"
echo "• RUNNER_OS=$RUNNER_OS"
echo "• RUNNER_TEMP=$RUNNER_TEMP"
echo "• RUNNER_TOOL_CACHE=$RUNNER_TOOL_CACHE"
- name: Install Yarn package manager and Node Gyp
run: |
npm install -g yarn
yarn global add node-gyp
- name: Pip setuptools
run: |
sudo -H pip install setuptools
- name: Install necessary dependencies and perform initial checks
run: |
yarn install
yarn lint
- name: Run "build" script
if: github.ref_type == 'tag'
run: yarn run build
- name: Run "build-latest" script
if: github.ref_type == 'branch'
run: yarn run build-latest
- name: Build macOS binaries
run: yarn run build:macos
- name: Prepare release assets
shell: bash
run: |
GIT_COMMIT_LOG=`git log -1 --format='%ci %H %s'`
PRODUCT_NAME=gSender
PACKAGE_NAME=`node -e "console.log(require('./src/package.json').name)"`
PACKAGE_VERSION=`node -e "console.log(require('./src/package.json').version)"`
mkdir -p releases/macos
ls -al output
cp -af "output/${PACKAGE_NAME}-${PACKAGE_VERSION}-x64.dmg" "releases/macos/gSender-${PACKAGE_VERSION}-Mac-Universal.dmg"
ls -al output releases/macos
if [[ "$GITHUB_REF_TYPE" == "branch" && "$GITHUB_REF_NAME" == "master" ]]; then
yarn github-release delete \
--owner=gSender \
--repo=gsender \
--tag="${GITHUB_REF_NAME}-latest" \
--release-name="${GITHUB_REF_NAME}" \
"*-macos*";
yarn github-release upload \
--owner=gSender \
--repo=gsender \
--tag="${GITHUB_REF_NAME}-latest" \
--release-name="${GITHUB_REF_NAME}" \
--body="${GIT_COMMIT_LOG}" \
releases/macos/*;
fi
#- name: Upload release assets
# uses: actions/github-script@v6
# with:
# github-token: ${{ secrets.GITHUB_TOKEN }}
# script: |
# // https://github.com/actions/upload-release-asset/issues/47#issuecomment-659071145
# console.log('environment:', process.versions);
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
releases/macos/*
prerelease: true
draft: true
build-windows:
name: Build Windows packages
runs-on: windows-latest
strategy:
matrix:
node-version: [20.x]
env:
GITHUB_TOKEN: ${{ secrets.CI_TOKEN }}
NODE_OPTIONS: --max-old-space-size=8192
permissions:
contents: write
steps:
- name: Prepare VC++ Runtime
run: choco install -y vcredist2017
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Environment variables
run: |
# https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables
echo "• GITHUB_REF_NAME=$GITHUB_REF_NAME"
echo "• GITHUB_REF_TYPE=$GITHUB_REF_TYPE" # `branch` or `tag`
echo "• GITHUB_RUN_NUMBER=$GITHUB_RUN_NUMBER"
echo "• GITHUB_SHA=$GITHUB_SHA"
echo "• RUNNER_ARCH=$RUNNER_ARCH"
echo "• RUNNER_NAME=$RUNNER_NAME"
echo "• RUNNER_OS=$RUNNER_OS"
echo "• RUNNER_TEMP=$RUNNER_TEMP"
echo "• RUNNER_TOOL_CACHE=$RUNNER_TOOL_CACHE"
- name: Install Yarn package manager and Node Gyp
run: |
npm install -g yarn
yarn global add node-gyp
- name: Install necessary dependencies and perform initial checks
run: |
yarn install
- name: Run "build" script
if: github.ref_type == 'tag'
run: yarn run build
- name: Run "build-latest" script
if: github.ref_type == 'branch'
run: yarn run build-latest
- name: Build Windows binaries
run: yarn run build:windows
- name: Prepare release assets
shell: bash
run: |
GIT_COMMIT_LOG=`git log -1 --format='%ci %H %s'`
PRODUCT_NAME=gSender
PACKAGE_NAME=`node -e "console.log(require('./src/package.json').name)"`
PACKAGE_VERSION=`node -e "console.log(require('./src/package.json').version)"`
mkdir -p releases/windows
ls -al output
cp -af "output/${PACKAGE_NAME}-${PACKAGE_VERSION}-x64.exe" "releases/windows/gSender-${PACKAGE_VERSION}-Windows-64Bit.exe"
ls -al output releases/windows
if [[ "$GITHUB_REF_TYPE" == "branch" && "$GITHUB_REF_NAME" == "master" ]]; then
yarn github-release delete \
--owner=gSender \
--repo=gsender \
--tag="${GITHUB_REF_NAME}-latest" \
--release-name="${GITHUB_REF_NAME}" \
"*-windows*";
yarn github-release upload \
--owner=gSender \
--repo=gsender \
--tag="${GITHUB_REF_NAME}-latest" \
--release-name="${GITHUB_REF_NAME}" \
--body="${GIT_COMMIT_LOG}" \
releases/windows/*;
fi
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
releases/windows/*
prerelease: true
draft: true