Install and deploy magento PWA-studio on ubuntu

Video tutorial on how setup and deploy pwa-studio on ubuntu production server using magento-actions :

name: m2-actions-test
on: [push]

jobs:
  magento2-build:
    runs-on: ubuntu-latest
    name: 'm2 tests & build'
    services:
      mysql:
        image: docker://mysql:8.0
        env:
          MYSQL_ROOT_PASSWORD: magento
          MYSQL_DATABASE: magento
        ports:
          - 3306:3306
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
      elasticsearch:
        image: docker://elasticsearch:7.1.0
        ports:
          - 9200:9200
        options: -e="discovery.type=single-node" --health-cmd="curl http://localhost:9200/_cluster/health" --health-interval=10s --health-timeout=5s --health-retries=10
    steps:
      - uses: actions/checkout@v2
      - name: 'install fresh magento repo'
        #if: always()
        uses: MAD-I-T/magento-actions@master
        env:
          COMPOSER_AUTH: ${{secrets.COMPOSER_AUTH}}
        with:
          process: 'create-project'
          magento_version: 2.4.5
          #no_push: 1
      
      - name: 'install fresh pwa-studio project'
        uses: MAD-I-T/magento-actions@v3.12
        if: ${{false}}
        with:
          process: 'pwa-studio-install'
          #no_push: 1

      - name: 'launch magento2 build'
        if: ${{false}}
        #if: always()
        id: build
        uses: MAD-I-T/magento-actions@master
        env:
          COMPOSER_AUTH: ${{secrets.COMPOSER_AUTH}}
        with:
          process: 'build'
          elasticsearch: 1
      - name: 'launch magento2 zero downtime deploy'
        if: ${{false}}
        #if: always()
        uses: MAD-I-T/magento-actions@master
        env:
          BUCKET_COMMIT: bucket-commit-${{github.sha}}.tar.gz
          HOST_DEPLOY_PATH: ${{secrets.STAGE_HOST_DEPLOY_PATH}}
          HOST_DEPLOY_PATH_BUCKET: ${{secrets.STAGE_HOST_DEPLOY_PATH}}/bucket
          SSH_PRIVATE_KEY: ${{secrets.STAGE_SSH_PRIVATE_KEY}}
          SSH_CONFIG: ${{secrets.STAGE_SSH_CONFIG}}
          WRITE_USE_SUDO: false
        with:
         deployer: 'no-permission-check'
         process: 'deploy-staging'
        
      - name: 'unlock deployer if failure'
        if: ${{false}}
        #if: failure()
        uses: MAD-I-T/magento-actions@master
        env:
          BUCKET_COMMIT: bucket-commit-${{github.sha}}.tar.gz
          HOST_DEPLOY_PATH: ${{secrets.STAGE_HOST_DEPLOY_PATH}}
          HOST_DEPLOY_PATH_BUCKET: ${{secrets.STAGE_HOST_DEPLOY_PATH}}/bucket
          SSH_PRIVATE_KEY: ${{secrets.STAGE_SSH_PRIVATE_KEY}}
          SSH_CONFIG: ${{secrets.STAGE_SSH_CONFIG}}
          WRITE_USE_SUDO: false
        with:
          process: 'cleanup-staging'