Skip to content

build

build #56

Workflow file for this run

name: build
on: workflow_dispatch
jobs:
build-backend:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: "1.20"
- run: |
set -eux
echo "machine github.krafton.com login xtrm-cicd-bot password ${{ secrets.GHES_GITHUB_TOKEN }}" >> ~/.netrc
name: Login GHES
- name: Install GoReleaser
uses: goreleaser/goreleaser-action@v2
with:
version: latest
install-only: true
- run: |
go mod download
working-directory: backend
- run: |
make build-backend
working-directory: electron-app
name: Build-Backend
- uses: actions/upload-artifact@v2
with:
name: build-artifact-backend
path: |
backend/dist/**
if-no-files-found: error
retention-days: 1
build-frontend:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: '16'
- run: |
npm install --global pnpm@7
pnpm install
working-directory: electron-app
- run: |
make build-frontend
working-directory: electron-app
name: Build-Frontend
- uses: actions/upload-artifact@v2
with:
name: build-artifact-frontend
path: |
electron-app/release/**
if-no-files-found: error
retention-days: 1
package:
needs:
- build-backend
- build-frontend
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
include:
- os: ubuntu-latest
artifactName: linux
- os: macos-latest
artifactName: darwin
- os: windows-latest
artifactName: windows
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: build-artifact-backend
path: backend/dist/
- uses: actions/download-artifact@v2
with:
name: build-artifact-frontend
path: electron-app/release/
- uses: actions/setup-node@v2
with:
node-version: '16'
- run: |
npm install --global pnpm@7
pnpm install
working-directory: electron-app
- run: |
make copy-backend-to-package
make package-${{ matrix.artifactName }}
working-directory: electron-app
shell: bash
name: Package
- uses: actions/upload-artifact@v2
with:
name: package-artifact-${{ matrix.artifactName }}
path: |
electron-app/release/build/*.zip
electron-app/release/build/*.dmg
electron-app/release/build/*.AppImage
electron-app/release/build/*.exe
electron-app/release/build/*.tar.gz
if-no-files-found: warn
retention-days: 1
publish:
needs:
- package
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: package-artifact-windows
path: ./packages
- uses: actions/download-artifact@v2
with:
name: package-artifact-darwin
path: ./packages
- uses: actions/download-artifact@v2
with:
name: package-artifact-linux
path: ./packages
- run: |
ls -al packages
VERSION=$(jq -r -c '.version' ./electron-app/package.json)
gh release create v$VERSION --repo=https://github.com/pubg/kubeconfig-updater --title=v$VERSION
gh release upload v$VERSION --repo=https://github.com/pubg/kubeconfig-updater ./packages/*-mac-universal.zip
gh release upload v$VERSION --repo=https://github.com/pubg/kubeconfig-updater ./packages/*-linux-*
gh release upload v$VERSION --repo=https://github.com/pubg/kubeconfig-updater ./packages/*-win-*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}