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@v3 - name: Use Node.js uses: actions/setup-node@v3 with: node-version: 16 - name: Install dependencies run: pnpm i --frozen-lockfile - name: Build project packages run: turbo build - name: Electron - Build app run: turbo dist-mac - name: Release uses: softprops/action-gh-release@v1 with: files: ./electron/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@v3 - name: Use Node.js uses: actions/setup-node@v3 with: node-version: 16 - name: Install dependencies run: pnpm i --frozen-lockfile - name: Build project packages run: turbo build - name: Electron - Build app run: turbo dist-win # Release - name: Release uses: softprops/action-gh-release@v1 with: files: ./electron/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@v3 - name: Use Node.js uses: actions/setup-node@v3 with: node-version: 16 - name: Install dependencies run: pnpm i --frozen-lockfile - name: Build project packages run: turbo build - name: Electron - Build app run: turbo dist-linux # Release - name: Release uses: softprops/action-gh-release@v1 with: files: ./electron/dist/ontime-linux.AppImage env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} publish_docker: runs-on: ubuntu-latest timeout-minutes: 20 env: CI: '' SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} steps: - uses: actions/checkout@v3 - name: Setup env run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV - name: Use Node.js uses: actions/setup-node@v3 with: node-version: 16 - name: Install dependencies run: pnpm i --frozen-lockfile - name: Build project packages run: turbo build - name: Electron - Build app run: turbo dist-mac # 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