How Do I Deploy From GitHub?
Add the OxyPages deploy action to your repository and every push republishes your site automatically. It runs your build, zips the output and uploads it in one step. Works on every plan, including Free.
Updated
If your site lives in a GitHub repository, you can have every push republish it. There is nothing to connect on our side: we never see your repository. Your own workflow builds the site and sends us the result.
Set It Up
- Create an API key and add it to your repository
as a secret named
OXYPAGES_API_KEY, under Settings, Secrets And Variables, Actions - Add your site id as a repository variable named
OXYPAGES_SITE_ID. It is not a secret, so it does not need to be one - Add this workflow:
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: oxypages/deploy-action@v1
with:
api-key: ${{ secrets.OXYPAGES_API_KEY }}
site-id: ${{ vars.OXYPAGES_SITE_ID }}
That is it. Push to main and the site updates.
With A Build Step
For a site that compiles first, point the action at your build and its output folder:
- uses: oxypages/deploy-action@v1
with:
api-key: ${{ secrets.OXYPAGES_API_KEY }}
site-id: ${{ vars.OXYPAGES_SITE_ID }}
build-command: npm run build
build-dir: ./dist
Dependencies are installed first when a package.json is present. Any
framework works, because what reaches us is the finished static output.
What It Skips
node_modules, .git, .github, markdown files, lock files and .env files
are left out by default. Override that with the exclude input if you need
something different.
What It Gives Back
The step sets outputs later steps can use: site-url, deployment-number,
pages, files and bytes. Handy for posting the live link into a pull
request comment.
If It Fails
The action checks before uploading and says what is wrong:
- No index.html at the top of the folder. We serve
index.htmlas the homepage, so pointbuild-dirat the folder that contains it - The key does not start with
oxy_. The secret is empty or wrong - Too large. A ZIP can be up to 100 MB
Every deploy creates a version, so you can still roll back from the dashboard.