chore: add build github actions (#2672)

* chore: add build github actions

* chore: remove docker push

* chore: update cache maven
This commit is contained in:
Alexey
2024-05-29 19:24:39 +02:00
committed by GitHub
parent d7658d4f93
commit baad9d6f98
3 changed files with 189 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
name: Backend Build
on:
# push:
# branches:
# - devel
# pull_request:
# branches:
# - devel
# paths-ignore:
# - "webapp/**"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Allows you to reuse workflows by referencing their YAML files
workflow_call:
jobs:
build-backend:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: "temurin"
java-version: "17"
cache: maven
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Run build script
run: sudo ./build-backend.sh
shell: bash
working-directory: ./deploy
- name: Archive build artifacts
uses: actions/upload-artifact@v4
with:
name: backend-build-artifacts
path: deploy/cloudbeaver
@@ -0,0 +1,54 @@
name: Build and Push Docker Image
on:
# push:
# branches:
# - devel
# pull_request:
# branches:
# - devel
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
call-backend-build:
uses: ./.github/workflows/backend-build.yml
call-frontend-build:
uses: ./.github/workflows/frontend-build.yml
build-and-push-docker:
runs-on: ubuntu-latest
needs: [call-backend-build, call-frontend-build]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download backend artifacts
uses: actions/download-artifact@v4
with:
name: backend-build-artifacts
path: deploy/cloudbeaver/
- name: Download frontend artifacts
uses: actions/download-artifact@v4
with:
name: frontend-build-artifacts
path: deploy/cloudbeaver/web
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Run custom Docker build script
working-directory: ./deploy
run: |
chmod +x make-docker-container.sh
./make-docker-container.sh
- name: Tag Docker Image
run: |
IMAGE_NAME=dbeaver/cloudbeaver
TAG_NAME=${{ github.head_ref || github.ref_name }}
docker tag $IMAGE_NAME:dev $IMAGE_NAME:$TAG_NAME
+84
View File
@@ -0,0 +1,84 @@
name: Frontend Build
on:
# push:
# branches:
# - devel
# pull_request:
# branches:
# - devel
# paths:
# - "webapp/**"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# Allows you to reuse workflows by referencing their YAML files
workflow_call:
jobs:
frontend-build:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./webapp
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v2
with:
node-version: "20"
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: restore yarn cache
uses: actions/cache@v4
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: restore node_modules
uses: actions/cache@v4
with:
path: "**/node_modules"
key: ${{ runner.os }}-node_modules-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-node_modules-
- name: restore typescript cache
uses: actions/cache@v4
with:
path: "**/packages/*/dist"
key: ${{ runner.os }}-dist-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-dist-
- name: yarn install
uses: borales/actions-yarn@v4
with:
dir: webapp
cmd: install
- name: yarn lerna bootstrap
uses: borales/actions-yarn@v4
with:
dir: webapp
cmd: lerna bootstrap
- name: build
uses: borales/actions-yarn@v4
with:
dir: webapp/packages/product-default
cmd: bundle
- name: Archive build artifacts
uses: actions/upload-artifact@v4
with:
name: frontend-build-artifacts
path: webapp/packages/product-default/lib