* Refactor cicd * Correct version plugin core --------- Co-authored-by: Hien To <tominhhien97@gmail.com>
182 lines
5.3 KiB
YAML
182 lines
5.3 KiB
YAML
name: Jan Build Electron App
|
|
|
|
on:
|
|
push:
|
|
tags: ['v*.*.*']
|
|
|
|
jobs:
|
|
build-macos:
|
|
runs-on: macos-latest
|
|
environment: production
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- name: Getting the repo
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Installing node
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: 20
|
|
|
|
- name: Install jq
|
|
uses: dcarbone/install-jq-action@v2.0.1
|
|
|
|
- name: Get tag
|
|
id: tag
|
|
uses: dawidd6/action-get-tag@v1
|
|
|
|
- name: Update app version base on tag
|
|
run: |
|
|
if [[ ! "${VERSION_TAG}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
echo "Error: Tag is not valid!"
|
|
exit 1
|
|
fi
|
|
jq --arg version "${VERSION_TAG#v}" '.version = $version' electron/package.json > /tmp/package.json
|
|
mv /tmp/package.json electron/package.json
|
|
env:
|
|
VERSION_TAG: ${{ steps.tag.outputs.tag }}
|
|
|
|
- name: Get Cer for code signing
|
|
run: base64 -d <<< "$CODE_SIGN_P12_BASE64" > /tmp/codesign.p12
|
|
shell: bash
|
|
env:
|
|
CODE_SIGN_P12_BASE64: ${{ secrets.CODE_SIGN_P12_BASE64 }}
|
|
|
|
- uses: apple-actions/import-codesign-certs@v2
|
|
with:
|
|
p12-file-base64: ${{ secrets.CODE_SIGN_P12_BASE64 }}
|
|
p12-password: ${{ secrets.CODE_SIGN_P12_PASSWORD }}
|
|
|
|
- name: Install yarn dependencies
|
|
run: |
|
|
yarn install
|
|
yarn build:plugins-darwin
|
|
|
|
- name: Build and publish app
|
|
run: |
|
|
yarn build:publish-darwin
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
CSC_LINK: "/tmp/codesign.p12"
|
|
CSC_KEY_PASSWORD: ${{ secrets.CODE_SIGN_P12_PASSWORD }}
|
|
CSC_IDENTITY_AUTO_DISCOVERY: "true"
|
|
APPLE_ID: ${{ secrets.APPLE_ID }}
|
|
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
|
|
|
|
build-windows-x64:
|
|
runs-on: windows-latest
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- name: Getting the repo
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Installing node
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: 20
|
|
|
|
- name: Install jq
|
|
uses: dcarbone/install-jq-action@v2.0.1
|
|
|
|
- name: Get tag
|
|
id: tag
|
|
uses: dawidd6/action-get-tag@v1
|
|
|
|
- name: Update app version base on tag
|
|
shell: bash
|
|
run: |
|
|
if [[ ! "${VERSION_TAG}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
echo "Error: Tag is not valid!"
|
|
exit 1
|
|
fi
|
|
jq --arg version "${VERSION_TAG#v}" '.version = $version' electron/package.json > /tmp/package.json
|
|
mv /tmp/package.json electron/package.json
|
|
env:
|
|
VERSION_TAG: ${{ steps.tag.outputs.tag }}
|
|
|
|
- name: Install yarn dependencies
|
|
run: |
|
|
yarn config set network-timeout 300000
|
|
yarn install
|
|
yarn build:plugins
|
|
|
|
- name: Build and publish app
|
|
run: |
|
|
yarn build:publish-win32
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
build-linux-x64:
|
|
runs-on: ubuntu-latest
|
|
environment: production
|
|
env:
|
|
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_TOKEN }}
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- name: Getting the repo
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Installing node
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: 20
|
|
|
|
- name: Install jq
|
|
uses: dcarbone/install-jq-action@v2.0.1
|
|
|
|
- name: Install Snapcraft
|
|
uses: samuelmeuli/action-snapcraft@v2
|
|
|
|
- name: Get tag
|
|
id: tag
|
|
uses: dawidd6/action-get-tag@v1
|
|
|
|
- name: Update app version base on tag
|
|
run: |
|
|
if [[ ! "${VERSION_TAG}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
|
echo "Error: Tag is not valid!"
|
|
exit 1
|
|
fi
|
|
jq --arg version "${VERSION_TAG#v}" '.version = $version' electron/package.json > /tmp/package.json
|
|
mv /tmp/package.json electron/package.json
|
|
env:
|
|
VERSION_TAG: ${{ steps.tag.outputs.tag }}
|
|
|
|
- name: Install yarn dependencies
|
|
run: |
|
|
yarn config set network-timeout 300000
|
|
yarn install
|
|
yarn build:plugins
|
|
|
|
- name: Build and publish app
|
|
run: |
|
|
yarn build:publish-linux
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
update_release_draft:
|
|
needs: [build-macos, build-windows-x64, build-linux-x64]
|
|
permissions:
|
|
# write permission is required to create a github release
|
|
contents: write
|
|
# write permission is required for autolabeler
|
|
# otherwise, read permission is required at least
|
|
pull-requests: write
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# (Optional) GitHub Enterprise requires GHE_HOST variable set
|
|
#- name: Set GHE_HOST
|
|
# run: |
|
|
# echo "GHE_HOST=${GITHUB_SERVER_URL##https:\/\/}" >> $GITHUB_ENV
|
|
|
|
# Drafts your next Release notes as Pull Requests are merged into "master"
|
|
- uses: release-drafter/release-drafter@v5
|
|
# (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml
|
|
# with:
|
|
# config-name: my-config.yml
|
|
# disable-autolabeler: true
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |