mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-05 23:43:57 +00:00
191 lines
5.0 KiB
YAML
191 lines
5.0 KiB
YAML
name: Ontime build
|
|
|
|
on:
|
|
push:
|
|
# run when a tag is created
|
|
tags:
|
|
- '*'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build_mac:
|
|
runs-on: macOS-latest
|
|
timeout-minutes: 20
|
|
env:
|
|
CI: ''
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Use Node.js
|
|
uses: actions/setup-node@v2
|
|
with:
|
|
node-version: '14.x'
|
|
|
|
# React
|
|
- name: React - Install dependencies
|
|
run: yarn install --frozen-lockfile --network-timeout 300000
|
|
working-directory: ./client
|
|
|
|
- name: React - Build project
|
|
run: yarn build
|
|
working-directory: ./client
|
|
|
|
# Node server
|
|
- name: Server - Install dependencies
|
|
run: yarn install --frozen-lockfile --production --network-timeout 300000
|
|
working-directory: ./server/src
|
|
|
|
# App
|
|
- name: Electron - Install dependencies
|
|
shell: bash
|
|
run: yarn install --frozen-lockfile --network-timeout 300000 && yarn setdb
|
|
working-directory: ./server
|
|
- name: Electron - Build app
|
|
run: yarn dist-mac
|
|
working-directory: ./server
|
|
|
|
# Release
|
|
- name: Release
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
files: ./server/dist/ontime-macOS.dmg
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
build_win:
|
|
runs-on: windows-latest
|
|
timeout-minutes: 20
|
|
env:
|
|
CI: ''
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Use Node.js
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: '14.x'
|
|
|
|
# React
|
|
- name: React - Install dependencies
|
|
run: yarn install --frozen-lockfile --network-timeout 300000
|
|
working-directory: ./client
|
|
|
|
- name: React - Build project
|
|
run: yarn build
|
|
working-directory: ./client
|
|
|
|
# Node server
|
|
- name: Server - Install dependencies
|
|
run: yarn install --frozen-lockfile --production --network-timeout 300000
|
|
working-directory: ./server/src
|
|
|
|
# App
|
|
- name: Electron - Install dependencies
|
|
shell: bash
|
|
run: yarn install --frozen-lockfile --network-timeout 300000 && yarn setdb
|
|
working-directory: ./server
|
|
- name: Electron - Build app
|
|
run: yarn dist-win
|
|
working-directory: ./server
|
|
|
|
# Release
|
|
- name: Release
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
files: ./server/dist/ontime-win64.exe
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
build_linux:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 20
|
|
env:
|
|
CI: ''
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Use Node.js
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: '14.x'
|
|
|
|
# React
|
|
- name: React - Install dependencies
|
|
run: yarn install --frozen-lockfile --network-timeout 300000
|
|
working-directory: ./client
|
|
|
|
- name: React - Build project
|
|
run: yarn build
|
|
working-directory: ./client
|
|
|
|
# Node server
|
|
- name: Server - Install dependencies
|
|
run: yarn install --frozen-lockfile --production --network-timeout 300000
|
|
working-directory: ./server/src
|
|
|
|
# App
|
|
- name: Electron - Install dependencies
|
|
shell: bash
|
|
run: yarn install --frozen-lockfile --network-timeout 300000 && yarn setdb
|
|
working-directory: ./server
|
|
- name: Electron - Build app
|
|
run: yarn dist-linux
|
|
working-directory: ./server
|
|
|
|
# Release
|
|
- name: Release
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
files: ./server/dist/ontime-linux.AppImage
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
publish_docker:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 20
|
|
env:
|
|
CI: ''
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Setup env
|
|
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
|
|
- name: Use Node.js
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: '14.x'
|
|
|
|
# React
|
|
- name: React - Install dependencies
|
|
run: yarn install --network-timeout 300000
|
|
working-directory: ./client
|
|
|
|
- name: React - Build project
|
|
run: yarn build
|
|
working-directory: ./client
|
|
|
|
# Node server
|
|
- name: Server - Install dependencies
|
|
run: yarn install --frozen-lockfile --production --network-timeout 300000
|
|
working-directory: ./server/src
|
|
|
|
# Login to docker
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v1
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
# Prepare builder
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
|
|
# Build and push
|
|
- name: Build and push
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: .
|
|
file: ./Dockerfile
|
|
push: true
|
|
tags: ${{ secrets.DOCKERHUB_USERNAME }}/ontime:${{ env.RELEASE_VERSION }} , ${{ secrets.DOCKERHUB_USERNAME }}/ontime:latest
|