103 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
on:
 | 
						|
  - push
 | 
						|
  - workflow-call
 | 
						|
 | 
						|
env:
 | 
						|
  ACTIONS_STEP_DEBUG: true
 | 
						|
 | 
						|
jobs:
 | 
						|
  build-glibc:
 | 
						|
    name: Build backend-glibc
 | 
						|
    runs-on: 'docker'
 | 
						|
    container:
 | 
						|
      image: rust:bullseye
 | 
						|
    steps:
 | 
						|
      - run: apt-get update
 | 
						|
      - run: apt-get install git nodejs -y
 | 
						|
      - uses: actions/checkout@v3
 | 
						|
      - name: Build
 | 
						|
        run: cargo build --release
 | 
						|
        working-directory: backend
 | 
						|
      - name: Upload executable
 | 
						|
        uses: actions/upload-artifact@v3
 | 
						|
        with:
 | 
						|
          name: backend-glibc
 | 
						|
          path: backend/target/release/backend_rust
 | 
						|
  build-muslc:
 | 
						|
    name: Build backend-muslc
 | 
						|
    runs-on: 'docker'
 | 
						|
    container:
 | 
						|
      image: rust:alpine
 | 
						|
    steps:
 | 
						|
      - name: Install dependencies
 | 
						|
        run: apk add pkgconf musl-dev git nodejs
 | 
						|
      - uses: actions/checkout@v3
 | 
						|
      - name: Build
 | 
						|
        run: cargo build --release
 | 
						|
        working-directory: backend
 | 
						|
      - name: Upload executable
 | 
						|
        uses: actions/upload-artifact@v3
 | 
						|
        with:
 | 
						|
          name: backend-muslc
 | 
						|
          path: backend/target/release/backend_rust
 | 
						|
  build-frontend:
 | 
						|
    name: Build frontend
 | 
						|
    runs-on: 'docker'
 | 
						|
    container:
 | 
						|
      image: node:current-alpine
 | 
						|
    steps:
 | 
						|
      - run: apk add git
 | 
						|
      - uses: actions/checkout@v3
 | 
						|
      - name: Install packages
 | 
						|
        run: yarn install --frozen-lockfile
 | 
						|
        working-directory: frontend
 | 
						|
      - name: Lint
 | 
						|
        run: yarn lint
 | 
						|
        working-directory: frontend
 | 
						|
      - name: Build
 | 
						|
        run: yarn build
 | 
						|
        working-directory: frontend
 | 
						|
      - name: Upload frontend
 | 
						|
        uses: actions/upload-artifact@v3
 | 
						|
        with:
 | 
						|
          name: frontend
 | 
						|
          path: frontend/dist/*
 | 
						|
  package:
 | 
						|
    name: Package builds
 | 
						|
    runs-on: 'docker'
 | 
						|
    container:
 | 
						|
      image: alpine:latest
 | 
						|
    needs: [build-glibc, build-muslc, build-frontend]
 | 
						|
    steps:
 | 
						|
      - name: Install packages
 | 
						|
        run: apk add tar xz
 | 
						|
      - run: mkdir static
 | 
						|
      - name: Download frontend
 | 
						|
        uses: actions/download-artifact@v3
 | 
						|
        with:
 | 
						|
          name: frontend
 | 
						|
          path: static
 | 
						|
      - name: Download backend-glibc
 | 
						|
        uses: actions/download-artifact@v3
 | 
						|
        with:
 | 
						|
          name: backend-glibc
 | 
						|
          path: server
 | 
						|
      - name: Package backend-glibc
 | 
						|
        run: tar -cvJf linux-x64-glibc.tar.xz server static
 | 
						|
      - name: Upload package-glibc
 | 
						|
        uses: actions/upload-artifact@v3
 | 
						|
        with:
 | 
						|
          name: package-glibc
 | 
						|
          path: linux-x64-glibc.tar.xz
 | 
						|
      - name: Download backend-muslc
 | 
						|
        uses: actions/download-artifact@v3
 | 
						|
        with:
 | 
						|
          name: backend-muslc
 | 
						|
          path: server
 | 
						|
      - name: Package backend-muslc
 | 
						|
        run: tar -cvJf linux-x64-muslc.tar.xz server static
 | 
						|
      - name: Upload package-muslc
 | 
						|
        uses: actions/upload-artifact@v3
 | 
						|
        with:
 | 
						|
          name: package-muslc
 | 
						|
          path: linux-x64-muslc.tar.xz |