Add more packages #421
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |