Merge branch 'main' into chore/nightly-build #2
Workflow file for this run
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: Jan Build Electron App Nightly | |
on: | |
push: | |
branches: | |
- chore/nightly-build | |
schedule: | |
- cron: '0 17 * * *' # At 5 PM UTC, which is 12 AM UTC+7 | |
workflow_dispatch: | |
inputs: | |
branch: | |
description: 'Branch to build' | |
required: true | |
default: 'main' | |
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/[email protected] | |
- name: Get tag | |
id: tag | |
uses: dawidd6/action-get-tag@v1 | |
- name: Update app version based on latest release tag with build number | |
id: version_update | |
run: | | |
# Get the latest release tag from GitHub API | |
LATEST_TAG=$(curl -s https://api.github.com/repos/owner/repo/releases/latest | jq -r .tag_name) | |
# Check if the tag is valid | |
if [[ ! "$LATEST_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | |
echo "Error: Latest tag is not valid!" | |
exit 1 | |
fi | |
# Remove the 'v' and append the build number to the version | |
NEW_VERSION="${LATEST_TAG#v}.${GITHUB_RUN_NUMBER}" | |
echo "New version: $NEW_VERSION" | |
# Update the version in electron/package.json | |
jq --arg version "$NEW_VERSION" '.version = $version' electron/package.json > /tmp/package.json | |
mv /tmp/package.json electron/package.json | |
echo "::set-output name=new_version::$NEW_VERSION" | |
- 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 | |
continue-on-error: true | |
with: | |
p12-file-base64: ${{ secrets.CODE_SIGN_P12_BASE64 }} | |
p12-password: ${{ secrets.CODE_SIGN_P12_PASSWORD }} | |
- name: Build and publish app | |
run: | | |
make build | |
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 }} | |
APP_PATH: "." | |
DEVELOPER_ID: ${{ secrets.DEVELOPER_ID }} | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ steps.version_update.outputs.new_version }} | |
path: ./electron/dist/*.dmg | |
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/[email protected] | |
- name: Get tag | |
id: tag | |
uses: dawidd6/action-get-tag@v1 | |
- name: Update app version base on tag | |
id: version_update | |
shell: bash | |
run: | | |
# Get the latest release tag from GitHub API | |
LATEST_TAG=$(curl -s https://api.github.com/repos/owner/repo/releases/latest | jq -r .tag_name) | |
# Check if the tag is valid | |
if [[ ! "$LATEST_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | |
echo "Error: Latest tag is not valid!" | |
exit 1 | |
fi | |
# Remove the 'v' and append the build number to the version | |
NEW_VERSION="${LATEST_TAG#v}.${GITHUB_RUN_NUMBER}" | |
echo "New version: $NEW_VERSION" | |
# Update the version in electron/package.json | |
jq --arg version "$NEW_VERSION" '.version = $version' electron/package.json > /tmp/package.json | |
mv /tmp/package.json electron/package.json | |
echo "::set-output name=new_version::$NEW_VERSION" | |
- name: Build app | |
shell: cmd | |
run: | | |
make build | |
- name: Windows Code Sign with AzureSignTool | |
run: | | |
dotnet tool install --global AzureSignTool | |
cd ./electron/dist | |
azuresigntool.exe sign -kvu "${{ secrets.AZURE_KEY_VAULT_URI }}" -kvi "${{ secrets.AZURE_CLIENT_ID }}" -kvt "${{ secrets.AZURE_TENANT_ID }}" -kvs "${{ secrets.AZURE_CLIENT_SECRET }}" -kvc ${{ secrets.AZURE_CERT_NAME }} -tr http://timestamp.globalsign.com/tsa/r6advanced1 -v "jan-win-x64-${{ steps.version_update.outputs.new_version }}.exe" | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ steps.version_update.outputs.new_version }} | |
path: ./electron/dist/*.exe | |
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/[email protected] | |
- 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 | |
id: version_update | |
run: | | |
# Get the latest release tag from GitHub API | |
LATEST_TAG=$(curl -s https://api.github.com/repos/owner/repo/releases/latest | jq -r .tag_name) | |
# Check if the tag is valid | |
if [[ ! "$LATEST_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | |
echo "Error: Latest tag is not valid!" | |
exit 1 | |
fi | |
# Remove the 'v' and append the build number to the version | |
NEW_VERSION="${LATEST_TAG#v}.${GITHUB_RUN_NUMBER}" | |
echo "New version: $NEW_VERSION" | |
# Update the version in electron/package.json | |
jq --arg version "$NEW_VERSION" '.version = $version' electron/package.json > /tmp/package.json | |
mv /tmp/package.json electron/package.json | |
echo "::set-output name=new_version::$NEW_VERSION" | |
- name: Build and publish app | |
run: | | |
make build | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ steps.version_update.outputs.new_version }} | |
path: ./electron/dist/*.deb |