Files
spacedrive/.github/workflows/server.yml
2023-09-21 11:10:56 +00:00

76 lines
2.5 KiB
YAML

name: Server release
on:
workflow_dispatch:
jobs:
build-server:
name: Build a docker image for spacedrive server
runs-on: ubuntu-20.04
defaults:
run:
shell: bash
steps:
- name: Maximize build space
if: ${{ runner.os == 'Linux' }}
uses: easimon/maximize-build-space@master
with:
remove-codeql: 'true'
remove-dotnet: 'true'
remove-haskell: 'true'
remove-android: 'true'
overprovision-lvm: 'true'
remove-docker-images: 'true'
- name: Checkout repository
uses: actions/checkout@v3
- name: Update buildah
shell: bash
run: |
wget -O- 'https://github.com/nicholasdille/buildah-static/releases/download/v1.30.0/buildah-amd64.tar.gz' \
| sudo tar -xzf- -C /usr/
- name: Determine image name & tag
id: image_info
shell: bash
run: |
if [ "$GITHUB_EVENT_NAME" == "release" ]; then
IMAGE_TAG=${GITHUB_REF##*/}
else
IMAGE_TAG=$(git rev-parse --short "$GITHUB_SHA")
fi
GITHUB_REPOSITORY_LOWER=$(echo $GITHUB_REPOSITORY | awk '{print tolower($0)}')
IMAGE_NAME="$GITHUB_REPOSITORY_LOWER/server"
echo "Building $IMAGE_NAME:$IMAGE_TAG"
echo "tag=${IMAGE_TAG}" >> $GITHUB_OUTPUT
echo "name=${IMAGE_NAME}" >> $GITHUB_OUTPUT
echo "repo=${GITHUB_REPOSITORY}" >> $GITHUB_OUTPUT
echo "repo_ref=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
- name: Build image
id: build-image
uses: redhat-actions/buildah-build@v2
with:
tags: ${{ steps.image_info.outputs.tag }} ${{ github.event_name == 'release' && 'production' || 'staging' }}
archs: amd64
image: ${{ steps.image_info.outputs.name }}
layers: 'false'
context: ./apps/server/docker
build-args: |
REPO=${{ steps.image_info.outputs.repo }}
REPO_REF=${{ steps.image_info.outputs.repo_ref }}
NODE_OPTIONS: "--max-old-space-size=4096"
containerfiles: |
./apps/server/docker/Dockerfile
- name: Push image to ghcr.io
uses: redhat-actions/push-to-registry@v2
with:
tags: ${{ steps.build-image.outputs.tags }}
image: ${{ steps.build-image.outputs.image }}
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}