Home
Research
Blog
Portfolio
Resume
software

Upload Files to GoFile.io — GitHub Action

Ahnaf An Nafee

Ahnaf An Nafee / October 01, 2022

WebsiteRepository

github-actions

ci-cd

node-js

javascript

rest-api

A GitHub Action that uploads any file from your CI/CD workflow to GoFile.io and returns a public URL plus QR code — no S3 bucket, no auth dance, one step in your YAML.

Upload Files to GoFile.io — GitHub Action

Overview

action-upload-gofile is a JavaScript-based GitHub Action that uploads any file from a CI/CD workflow to GoFile.io and returns a public URL plus a QR code as workflow outputs. It's built for the boring-but-common need to share a build artifact — an APK, an IPA, a debug log, a screenshot bundle — without standing up an S3 bucket, configuring an IAM policy, or asking the recipient to authenticate against GitHub just to download a file.

The action runs on the standard node16 runtime that ships with every GitHub-hosted runner, so there's no Docker pull and no cold-start tax. Drop two lines into your workflow YAML, pipe an optional GoFile API token through secrets, and the next step gets a public URL it can post to Slack, email, or a PR comment.

Features

  • One-step upload — uses: ahnafnafee/action-upload-gofile@v3.0.0 with file: and you're done.
  • Returns a public url and qrcode as workflow outputs, consumable by any downstream step.
  • Optional token input for higher rate limits and access to private buckets.
  • Anonymous mode for quick artifact shares — no GoFile account required.
  • File-agnostic: APKs, IPAs, ZIPs, build logs, screenshots, JSON dumps — anything under GoFile's size cap.
  • Updated for the v3.0.0 GoFile API (Dec 2025); the @v3 tag tracks GoFile's current API contract.

Built With

  • Node.js 16 — The default GitHub-hosted runner runtime. No additional setup, no Docker pull.
  • GoFile REST API — A single POST /uploadFile call carries the multipart body; GoFile's response includes the public URL and a server-generated QR code.
  • @actions/core — The GitHub Actions Toolkit primitive for reading inputs and setting workflow outputs.

Use Cases

  • Mobile build distribution — Push an APK or IPA on every merge to main and post the public link to a QA Slack channel.
  • PR-comment artifact previews — A follow-up actions/github-script step can attach the URL as a PR comment so reviewers download the build with one click.
  • Debug log handoff — Failing CI jobs that produce hundreds of MB of logs can publish them ephemerally instead of bloating Actions artifact storage.
  • Screenshot bundles from visual-regression runs — Upload the diff folder and share the URL with the designer instead of zipping and emailing.

Usage

Basic upload (anonymous)

yaml
steps:
  - name: Upload File
    id: gofile
    uses: ahnafnafee/action-upload-gofile@v3.0.0
    with:
      file: ./example.webp

  - name: View URL and QR Code
    run: |
      echo "GoFile URL = ${{ steps.gofile.outputs.url }}"
      echo "GoFile QR Code = ${{ steps.gofile.outputs.qrcode }}"

With a GoFile API token

yaml
steps:
  - name: Upload File
    id: gofile
    uses: ahnafnafee/action-upload-gofile@v3.0.0
    with:
      token: ${{ secrets.GOFILE_TOKEN }}
      file: ./build/app-release.apk

The token lifts rate limits and lets you upload into a private bucket. Store it as a repository secret — never inline it.

Version History

  • v3.0.0 (Dec 2025) — Rewritten to match the new GoFile API.
  • v2.1.0 (Oct 2022) — Added serverName input for specifying a GoFile server bucket.
  • v2.0.1 (Aug 2022) — Initial stable release.

Pin to a major tag (@v3) to receive patch updates automatically; pin to a full version (@v3.0.0) if you'd rather opt in manually.

Credits

Extends @rnkdsh/action-upload-diawi. The Diawi action's clean approach to multipart upload and output wiring was the starting point — GoFile's API specifics, the QR code output, and the v3 rewrite are this project's contributions.

Edit on GitHub

ME

HomeResearchBlogPortfolioResume

SOCIALS

connect with me:EmailLinkedInGitHubGoogle ScholarORCIDItch.ioArtStationBehance

© 2026 - All Rights Reserved