name: 'Set Swap Space'
description: 'Add moar swap'
branding:
  icon: 'crop'
  color: 'orange'
inputs:
  swap-size-gb:
    description: 'Swap space to create, in Gigabytes.'
    required: false
    default: '10'
runs:
  using: "composite"
  steps:
    - name: Swap space report before modification
      shell: bash
      run: |
        echo "Memory and swap:"
        free -h
        echo
        swapon --show
        echo
    - name: Set Swap
      shell: bash
      run: |
          export SWAP_FILE=$(swapon --show=NAME | tail -n 1)
          echo "Swap file: $SWAP_FILE"
          if [ -z "$SWAP_FILE" ]; then
            SWAP_FILE=/opt/swapfile
          else
            sudo swapoff $SWAP_FILE
            sudo rm $SWAP_FILE
          fi
          sudo fallocate -l ${{ inputs.swap-size-gb }}G $SWAP_FILE
          sudo chmod 600 $SWAP_FILE
          sudo mkswap $SWAP_FILE
          sudo swapon $SWAP_FILE
    - name: Swap space report after modification
      shell: bash
      run: |
        echo "Memory and swap:"
        free -h
        echo
        swapon --show
        echo
