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 }}