This GitHub Action downloads the Fly CLI and configures package managers to use Fly as a registry for dependencies.
For more information about JFrog Fly, see the official documentation.
- ✅ Supports all package managers available in Fly CLI
- ✅ Configures all detected package managers with a single command
- ✅ OIDC authentication only
- ✅ Allows ignoring specific package managers
- ✅ Automatic CI session end notification to the Fly server
name: Build with Fly Registry
on: [push]
permissions:
contents: read
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Setup Fly registry with OIDC
- name: Setup Fly Registry
uses: jfrog/fly-action@v1
with:
url: https://<your-fly-subdomain>.jfrog.io
# ignore: docker,pip (optional)This action requires OIDC authentication. The OIDC token is used to track uploads and downloads on the Fly server. You must set permissions: id-token: write in your workflow file.
permissions:
contents: read
id-token: write # Required for OIDC authenticationurl: Fly URL
ignore: Comma-separated list of package managers to ignore (e.g., docker,pip)
| Input | Description | Required | Default |
|---|---|---|---|
url |
Fly URL | Yes | N/A |
ignore |
Comma-separated list of package managers to ignore | No | None |
When using OIDC authentication:
- You need to set
permissions: id-token: writein your workflow file - The action will:
- Request an OIDC token from GitHub Actions
- Exchange it for a Fly access token
- Use the resulting token to authenticate with Fly
- Automatically notify the Fly server when the CI session ends (using GitHub Actions post-job mechanism)
Note: The CI end notification runs automatically as a post-job step. This ensures it executes even if the main action fails, for proper session management on the Fly server. If the CI end notification step itself encounters an error, it will cause the overall workflow to be marked as failed.
The action supports all package managers that the Fly CLI supports:
- npm, pnpm, yarn – Node.js package managers (npm registry)
- pip, pipenv, poetry, twine – Python package managers (PyPI repository)
- nuget, dotnet – .NET package managers (NuGet)
- docker, podman – Container registries (Docker)
- helm – Kubernetes package manager
- go – Go modules
- gradle – Gradle build tool
- maven – Maven build tool
See CONTRIBUTING.md for information on development setup, testing, and publishing.
This GitHub Action is licensed under the Apache-2.0.