on: - push - workflow-call jobs: build-glibc: name: Build backend-glibc runs-on: 'docker' container: image: rust:bullseye steps: - 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' contianer: image: rust:alpine steps: - uses: actions/checkout@v3 - name: Install dependencies run: apk add pkgconf musl-dev - 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: - 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