Skip to content

Setup File Mover ExpressS3 transfers in GitHub Actions

Set up AWS Labs' File Mover Express CLI with this independent action.

Setup File Mover Express logo

Setup AWS Labs File Mover Express in GitHub Actions with a setup action built and maintained by lowlysre. This project is independent and not affiliated with or endorsed by AWS. AWS and Amazon S3 are trademarks of Amazon.com, Inc. or its affiliates. The action and its docs are licensed under Apache-2.0.

What runs where ​

Workflow stepExampleResponsibility
Setup actionuses: lowlysre/setup-filemoverexpress@v1Installs and verifies the CLI, adds it to PATH, and optionally writes a transfer profile.
File Mover Express CLIrun: filemoverexpress upload default ./distTransfers files using the selected profile and the AWS credentials available to the job.

The setup action does not perform uploads or downloads. Add separate run steps for CLI commands after setup.

Quick start ​

This example assumes the repository has an AWS role configured for GitHub's OIDC provider and a build directory named dist. The first-upload tutorial covers the trust policy and bucket permissions.

yaml
name: Upload build output

on:
  push:
    branches: [main]

permissions:
  contents: read
  id-token: write

jobs:
  upload:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7

      - name: Configure AWS credentials
        uses: aws-actions/configure-aws-credentials@v6
        with:
          role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
          aws-region: us-east-1

      - name: Set up File Mover Express
        uses: lowlysre/setup-filemoverexpress@v1
        with:
          bucket: my-build-bucket
          validate-credentials: true

      - name: Upload build output
        shell: bash
        run: |
          filemoverexpress upload default ./dist 2>&1 | tee fme.log
          if grep -qE $'^(\033\\[[0-9;]*m)*(ERROR|FATAL)' fme.log; then
            echo "::error::File Mover Express reported transfer errors"
            exit 1
          fi

The credentials action provides AWS credentials and AWS_REGION. The setup action writes the default transfer profile and checks that it can list the bucket. Pin third-party actions to full commit SHAs in production workflows.

Common inputs ​

InputPurpose
filemoverexpress-versionInstall a release, version, or semver range.
bucketWrite a transfer profile for an S3 bucket.
regionSet the bucket region, or use the AWS region from the environment or config file.
transfer-profileName the profile to write and use with CLI commands.
validate-credentialsCheck the selected profile before the job continues.

See the complete input and output reference.

Documentation ​

  • Your first upload walks through AWS OIDC setup, IAM permissions, and a complete workflow.
  • How-to guides cover credentials, profiles, S3-compatible endpoints, transfer errors, throughput, versions, and runners.
  • Reference lists action inputs, outputs, environment variables, supported platforms, and CLI behavior in CI.
  • Explanations cover verification, credentials, caching, and CLI exit behavior.

Built and maintained by lowlysre. Not affiliated with or endorsed by AWS. Released under the Apache-2.0 License.