Code Monkey home page Code Monkey logo

deploy-pages's People

Contributors

darkc35 avatar dependabot[bot] avatar fulldecent avatar github-actions[bot] avatar grantbirki avatar gretap avatar jamesmgreene avatar jongwooo avatar joshmgross avatar kbdharun avatar konradpabjan avatar lmammino avatar rentziass avatar silverrainz avatar simonsiefke avatar takost avatar tcbyrd avatar toomanybees avatar tsusdere avatar yimysty avatar yoannchaudet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deploy-pages's Issues

Allow deploying from tags

Hi,

I'm trying to deploy pages via this action from a workflow started for a pushes, both branches and tags. I configured the branch and tags as protected and the github-pages environment for Deployment branches = Protected branches. First problem: there is no selection of Protected branches and tags.

Interestingly, if I add a branch protection rule matching the tags (v*.*.*), this works - applying the branch protection rule to the tag and thus allowing the deployment via tag-push-triggered workflow.

TL;DR: allow github-pages environment to be updated from (protected) tags, too, and do not apply branch protection rules to tags.

BUG: Action selects the first alphabetical artifact, not github-pages

The current action does not select an artifact named github-pages, like the documentation says, but instead the first alphabetical artifact:

const artifactUrl = `${data.value[0].url}&%24expand=SignedContent`

Example:

https://github.com/henryiii/hello-world-pages/runs/7589251565?check_suite_focus=true

This is the changeset from passing to failing:

henryiii/hello-world-pages@d487a4c

Real world failure fixed by adding a z- prefix to all artifacts: kratsg/faculty-statements@f092cee ๐Ÿคฃ

Debugging this with @kratsg, who kindly lent me his page to try out the new actions on.

"Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable"

https://github.com/mysociety/fixmystreet/actions/runs/1589158554 as an example - build started appearing in Actions this evening, but doesn't appear to work, giving this error and also "failed to emit pages build telemetry".
No idea if related, but our Pages settings won't let us "Enforce HTTPS" without saying why, and I was pretty sure that was already activated (might be misremembering!).
The Pages themselves appear to be fine and up to date.
Hope that's helpful.

Deployment failed to report final status (GHES)

Hello Everyone,
I have seen similar issue which has been closed, however the issue still persists. We are using GHES and lately we started facing issues when we try to deploy to github pages.
I have read the related issue and tried changing the versions to 1,1.2.6,1.2.8 but the following error was displayed

image

Cannot deploy an artifact to GitHub Pages

Error in log:
Error: Artifact could not be deployed. Please ensure the content does not contain any hard links, symlinks and total size is less than 10GB.

Workflow script:

name: Build & deploy

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [16.x]
    steps:
    - uses: actions/checkout@v3
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v3
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - name: Install dependencies
      run: npm install
    - name: Run tests
      run: npm run test
    - name: Build 
      run: npm run build
    - name: Upload a Build Artifact
      uses: actions/[email protected]
      with:
        name: build
        path: ./dist/*
  deploy:
    # Add a dependency to the build job
    needs: build

    # Grant GITHUB_TOKEN the permissions required to make a Pages deployment
    permissions:
      pages: write      # to deploy to Pages
      id-token: write   # to verify the deployment originates from an appropriate source

    # Deploy to the github-pages environment
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}

    # Specify runner + deployment step
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v1
        with:
          artifact_name: build

Usage without actions/jekyll-build-pages

I'm assuming the goal for actions/deploy-pages is to provide a generic way to deploy a zipped-up dump of a website following some conventions on artifact naming and the contents of the artifact.

Looking at the artifacts, it seems like the convention currently is:

  • Artifact name: "github-pages"
  • Artifact content: single tar file named artifact.tar that contains the website files

Two questions:

  1. Why the extra tar file? Wouldn't it be simpler to just have the website files directly in the artifact so that actions/upload-artifact can be used directly on a folder?
  2. Will these conventions change and should people wait before using actions/deploy-pages without actions/jekyll-build-pages?

Please explain why an environment is required

Hey everyone, I'm working for a big user of GHES and there are some policies in place to limit the use of GH actions to official/verified actions and custom-built ones.

Since that means we'll have to rely on this action to publish to GitHub Pages I had a look at the README. However, it is not clear to me why an environment is needed here at all. Even being required to have an artifact before (rather than also supporting the build output of previous steps) makes the entire process strangely complex.

Could you please explain your reasoning behind this and update the docs accordingly, thanks!

Assets in Git LFS are not added to artifact

If you use Git LFS with this action, the LFS pointer to the asset is added to the artifact instead of the actual asset.

For example, in the artifact produced by this run, the assets/images/avatar.jpg file contains the following plaintext instead of the image:

version https://git-lfs.github.com/spec/v1
oid sha256:967609522a3a0f4c5acf31218836c053d27309f6cfe1f05d6a1a821fbe882143
size 18151

Indeed, when I try to curl the file in the deployment, I get the very same LFS pointer.

$ curl https://vods.exodrifter.space/assets/images/avatar.jpg
version https://git-lfs.github.com/spec/v1
oid sha256:967609522a3a0f4c5acf31218836c053d27309f6cfe1f05d6a1a821fbe882143
size 18151

The action should use the actual asset when producing the artifact, not the LFS pointer.

Issue deploying github-pages artifact

Hi,
I'm trying to use this (super useful) action within an Enterprise repo. When deploying the artifact I hit 502 Bad Gateway.

Run actions/deploy-pages@v1
/usr/bin/docker exec  2c26655a51be600bc56174908587ac5480bdfbff0f0034b64f61f3cc66ce4c3d sh -c "cat /etc/*release | grep ^ID"
Artifact exchange URL: https://github.dev.global.***.org/_services/pipelines/4SaFpD3EjUqhAAtVcvhsnQhES2FTYURxZWSrLQNobqCTBubRoJ/_apis/pipelines/workflows/95573/artifacts?api-version=6.0-preview
Creating Pages deployment with payload:
{
	"artifact_url": "https://github.dev.global.***.org/_services/pipelines/4SaFpD3EjUqhAAtVcvhsnQhES2FTYURxZWSrLQNobqCTBubRoJ/_apis/pipelines/1/runs/848/artifacts?artifactName=github-pages&%24expand=SignedContent",
	"pages_build_version": "bc6b8[15](https://github.dev.global.***.org/BUS-DataScience/AIM-fresh-modelling/runs/735859?check_suite_focus=true#step:3:16)5dceab7608cd2f867a8b4fb96b96879de",
	"oidc_token": "***"
}
Error: Creating Pages deployment failed
Error: HttpError: <html><body><h1>502 Bad Gateway</h1>
The server returned an invalid or incomplete response.
</body></html>

    at /__w/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/node_modules/@octokit/request/dist-node/index.js:86:1
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at createPagesDeployment (/__w/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/src/api-client.js:1[16](https://github.dev.global.***/runs/735859?check_suite_focus=true#step:3:17):1)
    at Deployment.create (/__w/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/src/deployment.js:58:1)
    at main (/__w/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/src/index.js:30:1)
Error: TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'TLSSocket'
    |     property '_httpMessage' -> object with constructor 'ClientRequest'
    --- property 'socket' closes the circle

Could anyone me help track down the issue? I'm struggling to figure out what the issue actually is from the error.

Thanks.

feat: publish artifacts by subdirectory

Description

To be able to set a subdirectory to publish the artifact to, while preserving files outside of the subdirectory.

Motivation

I'd like to create a "staging" environment for development branches or PRs to deploy the changes to.

By separating the deploys by branch name (per subdirectory), PRs can be deployed to a staging environment before published to the main branch directory.

Can we support deploying from tags?

I have the following workflow:

# Simple workflow for deploying static content to GitHub Pages
name: Deploy static content to Pages

on:
  # Runs on pushes targeting the default branch
  push:
    tags:
      - "v*.*.*"

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write

# Allow one concurrent deployment
concurrency:
  group: "pages"
  cancel-in-progress: true

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Use Node.js 18.x
        uses: actions/setup-node@v3
        with:
          node-version: 18.x
          cache: "yarn"
      - name: Setup Pages
        uses: actions/configure-pages@v2
      - name: Setup yarn
        run: yarn
      - name: Build docs
        run: yarn run docs
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v1
        with:
          path: "./docs"

  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs:
      - build
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v1

I created a tag and the job failed with no logs and the following on the UI:

Branch "v2.0.2" is not allowed to deploy to github-pages due to environment protection rules.

and

The deployment was rejected or didn't satisfy other protection rules.

It would be great to get support for deploying docs on a tag

Timeout when pushed by some users

I have an issue, where some users who push to my repository with this action set up, the deployment eventually fails. The log for it looks like this:

Current status: deployment_queued
[...]
Current status: deployment_queued
Current status: deployment_in_progress
[...]
Current status: deployment_in_progress
Timeout reached, aborting!

The timeout happens after 10 minutes.
However, it works just fine for some other users.

There's also a link to a JSON result containing the message

API rate limit exceeded for XX.YY.ZZ.WW. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)

Not sure what to make of it though.

Failure without error code

I'm trying to deploy my built page to pages, but this action seems to fail without any error code, just "Try again later".
Config:

name: Build and Deploy
on:
  push:
    branches:
      - main
jobs:
  build:
    concurrency: ci-${{ github.ref }}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Setup Node.js
        uses: actions/setup-node@v2
        with:
          node-version: 16.x
      - name: Install and Build
        run: |
          npm ci
          npm run build
      - name: Upload artifact
        uses: actions/upload-artifact@v2
        with:
          name: github-pages
          path: ./dist
          if-no-files-found: warn
  deploy-to-pages:
    runs-on: ubuntu-latest
    name: Deploy to Pages
    needs: build
    permissions:
      id-token: write
      contents: read
      pages: write
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - name: Deploy artifact
        id: deployment
        uses: actions/deploy-pages@v1-beta

The result:

Actor: Anna-Dan
Action ID: 1756432244
Artifact URL: https://pipelines.actions.githubusercontent.com/5hihSr89L1pjn3eRto3775mYg7aBQ4fzNhi7FrUXnmaqcyGjxl/_apis/pipelines/workflows/1756432244/artifacts?api-version=6.0-preview
{"count":1,"value":[{"containerId":11236909,"size":818739,"signedContent":null,"fileContainerResourceUrl":"https://pipelines.actions.githubusercontent.com/5hihSr89L1pjn3eRto3775mYg7aBQ4fzNhi7FrUXnmaqcyGjxl/_apis/resources/Containers/11236909","type":"actions_storage","name":"github-pages","url":"https://pipelines.actions.githubusercontent.com/5hihSr89L1pjn3eRto3775mYg7aBQ4fzNhi7FrUXnmaqcyGjxl/_apis/pipelines/1/runs/23/artifacts?artifactName=github-pages","expiresOn":"2022-04-27T15:53:58.0671261Z","items":null}]}
Creating deployment with payload:
{
"artifact_url": "https://pipelines.actions.githubusercontent.com/5hihSr89L1pjn3eRto3775mYg7aBQ4fzNhi7FrUXnmaqcyGjxl/_apis/pipelines/1/runs/23/artifacts?artifactName=github-pages&%24expand=SignedContent",
"pages_build_version": "de8e11ae6f4ebfee2c48f33c613aee996d97aea1",
"oidc_token": "***"
}
Created deployment for de8e11ae6f4ebfee2c48f33c613aee996d97aea1
{"page_url":"https://anna-dan.github.io/mesto/","status_url":"https://api.github.com/repos/Anna-Dan/mesto/pages/deployment/status/de8e11ae6f4ebfee2c48f33c613aee996d97aea1"}

Current status: deployment_queued
Error: Deployment failed, try again later.
Sending telemetry for run id 1756432244

Tags unable to deploy to pages

I am trying to deploy to pages when the software is released. But I keep getting error saying that Branch "v1.1.2" is not allowed to deploy to github-pages due to environment protection rules.

The actions file look like:

name: Deploy Sphinx Docs to GitHub Pages

on:
  release:
    types: [ published ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
  group: "pages"
  cancel-in-progress: false

jobs:
  # Build job
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Setup Pages
        uses: actions/configure-pages@v3
      - name: Setup Python
        uses: actions/setup-python@v3
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install pipenv
          pipenv install --dev
      - name: Build
        run: |
          cd _docs
          pipenv run make html
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v1
        with:
          path: _docs/_build/html

  # Deployment job
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v2

it works fine on main branch

Timeout not actually effective

I have a GHAction that I have set up to deploy a repo of mine. I was hitting the timeout limit of the Deploy-Pages step of the action. After looking here, I noticed a timeout input. I have since updated the timeout parameter to reflect a MUCH longer time than 10 minutes (I have it set for 7 Days, though I do not expect to reach that at all, nor have I set anything up to pass my token after 24 hours anyway, which would be a limiting factor anyway). While this addition to my workflow has allowed the step to not timeout, the deployment essentially freezes now.

Tue, 18 Apr 2023 02:31:40 GMT
Run actions/deploy-pages@v1
Tue, 18 Apr [2](https://github.com/Math-Study-Dev/nds-host/actions/runs/4725994966/jobs/8385073658#step:4:2)023 02:31:40 GMT
  with:
Tue, 18 Apr 2023 02:31:40 GMT
    timeout: 604800000
Tue, 18 Apr 202[3](https://github.com/Math-Study-Dev/nds-host/actions/runs/4725994966/jobs/8385073658#step:4:3) 02:31:40 GMT
    emit_telemetry: false
Tue, 18 Apr 2023 02:31:40 GMT
    token: ***
Tue, 18 Apr 2023 02:31:[4](https://github.com/Math-Study-Dev/nds-host/actions/runs/4725994966/jobs/8385073658#step:4:4)0 GMT
    error_count: 10
Tue, 18 Apr 2023 02:31:40 GMT
    reporting_interval: [5](https://github.com/Math-Study-Dev/nds-host/actions/runs/4725994966/jobs/8385073658#step:4:5)000
Tue, 18 Apr 2023 02:31:40 GMT
    artifact_name: github-pages
Tue, 18 Apr 2023 02:31:40 GMT
    preview: false
Tue, 18 Apr 2023 02:31:40 GMT
  env:
Tue, 18 Apr 2023 02:31:40 GMT
    GITHUB_PAGES: true
Tue, 18 Apr 2023 02:31:40 GMT
  
Tue, 18 Apr 2023 02:31:42 GMT
Artifact exchange URL: https://pipelines.actions.githubusercontent.com/X0secSu0E2WRKkcQRKUcQDCKkC7bFSTPGfo2rc9fDEKR2jvPE8/_apis/pipelines/workflows/47259949[6](https://github.com/Math-Study-Dev/nds-host/actions/runs/4725994966/jobs/8385073658#step:4:6)6/artifacts?api-version=6.0-preview
Tue, 18 Apr 2023 02:31:42 GMT
Creating Pages deployment with payload:
Tue, 18 Apr 2023 02:31:42 GMT
{
Tue, 18 Apr 2023 02:31:42 GMT
	"artifact_url": "https://pipelines.actions.githubusercontent.com/X0secSu0E2WRKkcQRKUcQDCKkC[7](https://github.com/Math-Study-Dev/nds-host/actions/runs/4725994966/jobs/8385073658#step:4:7)bFSTPGfo2rc9fDEKR2jvPE[8](https://github.com/Math-Study-Dev/nds-host/actions/runs/4725994966/jobs/8385073658#step:4:8)/_apis/pipelines/1/runs/23/artifacts?artifactName=github-pages&%24expand=SignedContent",
Tue, 18 Apr 2023 02:31:42 GMT
	"pages_build_version": "f0ff327717f4755[9](https://github.com/Math-Study-Dev/nds-host/actions/runs/4725994966/jobs/8385073658#step:4:9)623[10](https://github.com/Math-Study-Dev/nds-host/actions/runs/4725994966/jobs/8385073658#step:4:10)fa7847d8d6bd26b296a",
Tue, 18 Apr 2023 02:31:42 GMT
	"oidc_token": "***"
Tue, 18 Apr 2023 02:31:42 GMT
}
Tue, 18 Apr 2023 02:31:42 GMT
Created deployment for f0ff327717f4755962310fa7847d8d6bd26b296a, ID: f0ff327717f4755962310fa7847d8d6bd26b296a
Tue, 18 Apr 2023 02:31:46 GMT
Getting Pages deployment status...
Tue, 18 Apr 2023 02:31:46 GMT
Current status: deployment_in_progress
Tue, 18 Apr 2023 02:31:51 GMT
Getting Pages deployment status...
Tue, 18 Apr 2023 02:31:51 GMT
Current status: deployment_in_progress
Tue, 18 Apr 2023 02:31:56 GMT
Getting Pages deployment status...
Tue, 18 Apr 2023 02:31:57 GMT
Current status: deployment_in_progress
Tue, 18 Apr 2023 02:32:02 GMT
Getting Pages deployment status...
Tue, 18 Apr 2023 02:32:02 GMT
Current status: deployment_in_progress
Tue, 18 Apr 2023 02:32:07 GMT
Getting Pages deployment status...
Tue, 18 Apr 2023 02:32:07 GMT
Current status: deployment_in_progress
[...]
Tue, 18 Apr 2023 02:41:28 GMT
Current status: deployment_in_progress
Tue, 18 Apr 2023 02:41:33 GMT
Getting Pages deployment status...
Tue, 18 Apr 2023 02:41:33 GMT
Current status: deployment_in_progress
Tue, 18 Apr 2023 02:41:38 GMT
Getting Pages deployment status...
Tue, 18 Apr 2023 02:41:39 GMT
Current status: deployment_in_progress
Tue, 18 Apr 2023 02:41:44 GMT
Getting Pages deployment status...
Tue, 18 Apr 2023 02:41:44 GMT
Current status: 
Tue, 18 Apr 2023 02:41:49 GMT
Getting Pages deployment status...
Tue, 18 Apr 2023 02:41:49 GMT
Current status: 
Tue, 18 Apr 2023 02:41:54 GMT
Getting Pages deployment status...
Tue, 18 Apr 2023 02:41:54 GMT
Current status: 

It has now just repeated this, even now

Tue, 18 Apr 2023 09:56:06 GMT
Getting Pages deployment status...
Tue, 18 Apr 2023 09:56:06 GMT
Current status: 

The runner is at 9 hours now, doing what seems to be nothing. This is my second attempt, and both times it stalled at 10 minutes in.

Why have the timeout input if it isn't gonna work? Is there something I am missing?

Deploy request keep fails with 400 error.

About few hours ago, I tried to change my pages.
After several pull requests, the deploying process suddenly failed and it keeps failing so far.

Actor: github-pages[bot]
Action ID: 2053521171
Artifact URL: https://pipelines.actions.githubusercontent.com/fg4udqL2Wa82qoAxzxN3RnaFg6dw3vrWz4bACOBlaxNtoOR89J/_apis/pipelines/workflows/2053521171/artifacts?api-version=6.0-preview
{"count":1,"value":[{"containerId":9456527,"size":23541760,"signedContent":null,"fileContainerResourceUrl":"https://pipelines.actions.githubusercontent.com/fg4udqL2Wa82qoAxzxN3RnaFg6dw3vrWz4bACOBlaxNtoOR89J/_apis/resources/Containers/9456527","type":"actions_storage","name":"github-pages","url":"https://pipelines.actions.githubusercontent.com/fg4udqL2Wa82qoAxzxN3RnaFg6dw3vrWz4bACOBlaxNtoOR89J/_apis/pipelines/1/runs/101/artifacts?artifactName=github-pages","expiresOn":"2022-06-26T16:16:23.5374012Z","items":null}]}
Creating deployment with payload:
{
	"artifact_url": "https://pipelines.actions.githubusercontent.com/fg4udqL2Wa82qoAxzxN3RnaFg6dw3vrWz4bACOBlaxNtoOR89J/_apis/pipelines/1/runs/101/artifacts?artifactName=github-pages&%24expand=SignedContent",
	"pages_build_version": "e95f420697a9e5931990b6cc697fe85bf5c5c6f4",
	"oidc_token": "***"
}
Failed to create deployment for e95f420697a9e5931990b6cc697fe85bf5c5c6f4.
{"message":"Deployment request failed for e95f420697a9e5931990b6cc697fe85bf5c5c6f4 due to in progress deployment. Please cancel 51542b8f73858241b61d5a1951652e55f5c041e9 first or wait for it to complete.","documentation_url":"https://docs.github.com/rest/reference/repos#create-a-github-pages-deployment"}
Error: Error: Request failed with status code 400
Error: Error: Request failed with status code 400
Sending telemetry for run id 2053521171

I couldn't find workflow '51542b8f73858241b61d5a1951652e55f5c041e9'.
Also workflow which status is 'queued' or 'in progress' doesn't exist so that I cannot stop anything.
Furthermore, sometimes server returns 502 error too.

What should I do?

edited : Is this problem same with last issue? #22
It seems people currently talking about same problem.

Fails with Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable

The following workflow fails for both actions/deploy-pages@v1-beta and actions/deploy-pages@v1. This workflow reflects the format noted in #9.

name: Build and Deploy
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Build jekyll
        uses: actions/jekyll-build-pages@v1

      - name: Archive
        run: tar --dereference --hard-dereference --directory _site/ -cvf artifact.tar .

      - name: Upload
        uses: actions/upload-artifact@main
        with:
          name: github-pages
          path: ./artifact.tar
          if-no-files-found: warn

  deploy:
    runs-on: ubuntu-latest
    needs: build
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v1-beta

Result

2022-03-31T02:20:44.9923161Z ##[group]Run actions/deploy-pages@v1-beta
2022-03-31T02:20:44.9923517Z with:
2022-03-31T02:20:44.9923999Z   token: ***
2022-03-31T02:20:44.9924270Z   timeout: 600000
2022-03-31T02:20:44.9924538Z   error_count: 10
2022-03-31T02:20:44.9924827Z   reporting_interval: 1000
2022-03-31T02:20:44.9925097Z ##[endgroup]
2022-03-31T02:20:45.0687762Z ##[error]Error: Error message: Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable

Stuck at: Current status: updating_pages

I've a static NextJS site in docs/ in gh-pages branch which deploys fine (although some assets aren't loaded properly).

When I've added .nojekyll file, the deployment to GitHub Pages fails.

Run actions/deploy-pages@v1-beta
  with:
    token: ***
    timeout: 600000
    error_count: 10
    reporting_interval: 1000
...
Created deployment for cfc1e8b406fd8512c59e94810188e48fbcd42229
...
Current status: deployment_queued
Current status: updating_pages
Current status: updating_pages
Current status: updating_pages
Error: Error: Request failed with status code 500
Sending telemetry for run id 1751510859

Gets stuck in large deployment with no "Current status:" output

The deploy-pages action appears to get stuck after the "Current status: finished_file_sync" step with no information after the "Current status: " line on built-in status checks for large static file repository deployments. The transferred artifact from the upload-pages-artifact step was 5.3 GB with an indicated raw size of 8.0 GB, both well below the 10 GB limit, and the GitHub-pages artifact is successfully uploaded. The deploy-pages action receives this corrrectly and proceeds through the "deployment_in_progress", "syncing_files", and "finished_file_sync" steps as listed by the "Current status:" line, but then the action continues with no output beyond the "Current status:" message until the timeout is reached. This happens even if the timeout is increased to large values.

To gain insight as to what is happening, further detail is needed in the "Current status:" output and more clarity on the expected steps is needed. Additionally, it would be helpful to produce a multi-step method of splitting up deployment of large static sites using actions so that the site deployment can be handled in stages rather than all at once. Note no processing of any sort is taking place as the site has already been prepared as a complete set of static files, only the deployment to GitHub Pages needs to be processed.

Empty output.page_url despite successful deployment

I have a job defined to deploy my project documentation to the github-pages environment, but despite the deployment working as expected, there's a warning annotation on the workflow that states:

Environment URL '' is not a valid http(s) URL, so it will not be shown as a link in the workflow graph.

I've tried setting the default access permissions for the GITHUB_TOKEN to both my repository's default "restricted", as well as the "permissive" settings, but it has not made a difference.

If it's helpful, I'd be glad to paste any of the job output from a run here, but for reference, this is my job definition:

  deploy:
    name: deploy / github-pages
    needs: build
    permissions:
      pages: write
      id-token: write
    environment:
      name: github-pages
      url: ${{ steps.deployment.output.page_url }}
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v2

Relates to EarthmanMuons/rustops-blueprint#18

Error: No uploaded artifact was found!

Getting an error with GithubPages. Stopped working in the span of 20 minutes between commits. No changes to configurations have been made.

Run actions/deploy-pages@v1-beta
  with:
    token: ***
    timeout: 600000
    error_count: 10
    reporting_interval: 1000
Actor: github-pages[bot]
Action ID: 1762005351
Artifact URL: https://pipelines.actions.githubusercontent.com/xRwahbJbEpFBFiI3me9E8FefKh0Q1vZDn1Byt2m1MCqCUxk23r/_apis/pipelines/workflows/1762005351/artifacts?api-version=6.0-preview
{"count":0,"value":[]}
Failed to create deployment for 7fac660be76d04c18f154ef418dad9a22c27c5dd.
Error: Error: No uploaded artifact was found! Please check if there are any errors at build step.
Error: Error: No uploaded artifact was found! Please check if there are any errors at build step.

Failed to create deployment (status: 400)

Following the same code as in the starter example for Github Pages deploy-pages step results in the following error:

Error: Failed to create deployment (status: 400) with build version efba898182be4068f5a83d356f1a5bf241229025. Responded with: Invalid deployment branch and no branch protection rules set in the environment. Deployments are only allowed from gh-pages

As there is no way to specify the branch or protection rules, I do not know how to proceed. If this is not caused by code in deploy-pages, any insight would be appreciated. This is happening in this repo.

Error: Ensure GITHUB_TOKEN has permission "idToken: write".

A workflow that was working fine for weeks suddenly stopped working with the following error message:

Run actions/deploy-pages@v1
Error: Error message: Cannot read properties of undefined (reading 'message')
    at Function.<anonymous> (/home/runner/work/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/node_modules/@actions/core/lib/oidc-utils.js:71:1)
    at Generator.throw (<anonymous>)
    at rejected (/home/runner/work/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/node_modules/@actions/core/lib/oidc-utils.js:6:1)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Error: Ensure GITHUB_TOKEN has permission "idToken: write".

Any ideas as to what might have happened?

The relevant workflow is here: https://github.com/mathiasbynens/tibia-bosses/blob/5a2f78b8a9a325ca0f5f1d709421b2239532826e/.github/workflows/build.yml#L30-L38

GitHub Pages needs to be enabled in settings (not just an environment named github-pages)

I tried getting this working for longer than I would like to admit before I discovered this was why it was failing.

When GitHub Pages isn't enabled, the telemetry for this action also fails to emit.

I would prefer if the usual GitHub pages rebuild on push doesn't happen, but I can certainly make do while it is in beta (and thank you for developing the beta in public).

v1.2.7 breaks action for GHES 3.7.7

We use GitHub Enterprise Server 3.7.7 in our org and the v1.2.7 update breaks workflow for us. Had to specify v1.2.6 to use.

With 1.2.7, the action fails with:

Error: Creating Pages deployment failed
Error: HttpError: Not Found
    at /runner/_work/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/node_modules/@octokit/request/dist-node/index.js:86:1
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at createPagesDeployment (/runner/_work/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/src/api-client.js:116:1)
    at Deployment.create (/runner/_work/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/src/deployment.js:58:1)
    at main (/runner/_work/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/src/index.js:30:1)
Error: Error: Failed to create deployment (status: 404) with build version b016166ec21b31bee21e3bff29219a2dd107[18](https://xxx/org/repo/runs/3672925?check_suite_focus=true#step:3:19)5c. Ensure GitHub Pages has been enabled: https://xxx/org/repo/runs/settings/pages

I've deducted the url details.

Understand that the fix is for the main Github cloud. Do you plan any backwards compatibility for the previous versions of GHES?

Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable

Run actions/deploy-pages@main
  with:
    token: ***
    emit_telemetry: false
    timeout: 600000
    error_count: 10
    reporting_interval: [5](https://github.com/AceKiron/portfolio/runs/6745490016?check_suite_focus=true#step:7:5)000
Error: Error: Error message: Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable

That's all it says, running this action using

- name: Deploy artifact
  uses: actions/deploy-pages@main
  with:
    token: ${{ github.token }}

Repository for example: https://github.com/AceKiron/portfolio

Support brotli compression

It appears that github-pages is capable of serving brotli compressed assets: https://curbengh.github.io/hexo-testing/

However, pre-compressing the assets does not appear to be working https://github.com/runspired/western-states-odds-projection/blob/707b7a711e66f460b73b8105afdd7f1716107dfe/.github/workflows/deploy.yml#L50

Checking the deployed assets generated, the compressed files are in the tarball: https://github.com/runspired/western-states-odds-projection/suites/9625243675/artifacts/459748923

Not sure what happens that they don't get served when those above with the jekyll docs site are.

Error : Invalid actions OIDC token due to sub_invalid

Hi,
I try create a scheduled workflow that is identical to the pages-build-deployment workflows provided by Github for Pages.

I wanted to use the same actions (actions/jekyll-build-pages & actions/deploy-pages) but I have an issue (error) with actions/deploy-pages:

Failed to create deployment for ecdfe6d6276a0e9c2f5f1701e690bf8d69169602.
{"message":"Invalid actions OIDC token due to sub_invalid, validate around 1641819761.","documentation_url":"https://docs.github.com/rest/reference/repos#create-a-github-pages-deployment"}
Error: Error: Request failed with status code 400
Error: Error: Request failed with status code 400
Sending telemetry for run id 1677474470

This is the workflow I made:

permissions:
  contents: read
  pages: write
  id-token: write

name: Daily Build

# Controls when the workflow will run
on:
  # Triggers the workflow everyday
  # DEBUG: currently every 5mins
  schedule:
    - cron: '*/5 * * * *'
  workflow_dispatch:

# Workflow with two jobs: "Build" then "Deploy"
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          submodules: recursive
      - name: Build page with Jekyll
        uses: actions/jekyll-build-pages@v1-beta
        with:
          source: ./
          destination: ./_site
          future: false
      - name: Archive build output
        run: tar --dereference --hard-dereference --directory _site/ -cvf artifact.tar .
      - name: Upload Artifact
        uses: actions/upload-artifact@main
        with:
          name: github-pages
          path: ./artifact.tar
          if-no-files-found: warn

  deploy:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - name: Deploy to GitHub Pages
        uses: actions/deploy-pages@v1-beta

Is there anything more to do in order to use the deploy-pages action ?

I tried to understand if I needed to add or request a token but I admit being a little bit lost ๐Ÿค”

@tcbyrd I'm sure you can tell me what i'm doing wrong ๐Ÿ™‚

PS: link to one failed deploy

Input 'emit_telemtry' has ben deprecated.

Warning: Input 'emit_telemetry' has been deprecated with message: Use of this input causes the action to do nothing. You should remove this build step from your workflow.
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:2)
Run actions/deploy-pages@v1
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:12)
Actor: Shra1-25
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:13)
Action ID: 3734125929
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:14)
Artifact URL: https://pipelines.actions.githubusercontent.com/03jnh0ZsmJ51OBVRnzXy9eArzjnWf93vneRRxQgHBlKC7kSnmC/_apis/pipelines/workflows/3734125929/artifacts?api-version=6.0-preview
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:15)
{"count":1,"value":[{"containerId":1091299,"size":1751040,"signedContent":null,"fileContainerResourceUrl":"https://pipelines.actions.githubusercontent.com/03jnh0ZsmJ51OBVRnzXy9eArzjnWf93vneRRxQgHBlKC7kSnmC/_apis/resources/Containers/1091299","type":"actions_storage","name":"github-pages","url":"https://pipelines.actions.githubusercontent.com/03jnh0ZsmJ51OBVRnzXy9eArzjnWf93vneRRxQgHBlKC7kSnmC/_apis/pipelines/1/runs/17/artifacts?artifactName=github-pages","expiresOn":"2022-12-20T18:25:43.6070555Z","items":null}]}
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:16)
Creating deployment with payload:
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:17)
{
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:18)
"artifact_url": "https://pipelines.actions.githubusercontent.com/03jnh0ZsmJ51OBVRnzXy9eArzjnWf93vneRRxQgHBlKC7kSnmC/_apis/pipelines/1/runs/17/artifacts?artifactName=github-pages&%24expand=SignedContent",
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:19)
"pages_build_version": "b1e77b9e4e3bf41ce94ed3e4db2d1d809094dbdb",
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:20)
"oidc_token": "***"
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:21)
}
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:22)
Created deployment for b1e77b9e4e3bf41ce94ed3e4db2d1d809094dbdb
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:23)
{"page_url":"https://shra1-25.github.io/shravan.github.io/","status_url":"https://api.github.com/repos/Shra1-25/shravan.github.io/pages/deployment/status/b1e77b9e4e3bf41ce94ed3e4db2d1d809094dbdb","preview_url":""}
(https://github.com/Shra1-25/shravan.github.io/actions/runs/3734125929/jobs/6335802740#step:2:24)
Reported success!

Add an additional input variable, with the URL of the destination repo

I'm using a dual deploy mode for my GitHub Pages sites; pushes to the master branch are published in the <organization>.github.io repo, as usual, but pushes to the develop branch are published into an alternate web-preview repo, in an attempt to spot possible errors before the final publish.

With this deploy-pages action, if I got it right, it is only possible to publish into the same repo.

Would it be possible to add an additional input variable, with the URL of the destination repo, to allow publishing to alternate sites?

Thank you!

Add post hook to cancel in-progress deployments if the job/workflow run ends unsuccessfully

It might be good to add a post hook/step for this Action to cancel any in-progress deployments if the Actions job/workflow run ends unsuccessfully (cancelled, failed, erred, etc.). ๐Ÿ›ก๏ธ

For state maintenance of the active deployment ID, see: https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#sending-values-to-the-pre-and-post-actions

The Actions toolkit also has support for โ˜๐Ÿป using core.saveState(...) and core.getState(...): https://github.com/actions/toolkit/tree/main/packages/core#action-state

Requires updates to the Action's manifest file:

Rough idea:

  • After creating a deployment, save the ID in the state
  • After a deployment is terminated (success or failure), save that status indicator in the state
  • Add a post cleanup step
    • If the deployment ID is present in the state but the terminated status is not (or is not set to true), make one attempt to cancel the deployment

My github page can not deploy due to code

Sorry for interruption, but my page are confronted with deploy failure that I can solve:

Warning: Input 'emit_telemetry' has been deprecated with message: Use of this input causes the action to do nothing. You should remove this build step from your workflow.
Run actions/deploy-pages@v1
Actor: github-pages[bot]
Action ID: 3541027231
Artifact URL: https://pipelines.actions.githubusercontent.com/vkHFzCL7Y5132px1YFZ6UPIsAtJbQxnm92SclbH7tXlkxLxmBM/_apis/pipelines/workflows/3541027231/artifacts?api-version=6.0-preview
{"count":1,"value":[{"containerId":14471415,"size":994406400,"signedContent":null,"fileContainerResourceUrl":"https://pipelines.actions.githubusercontent.com/vkHFzCL7Y5132px1YFZ6UPIsAtJbQxnm92SclbH7tXlkxLxmBM/_apis/resources/Containers/14471415","type":"actions_storage","name":"github-pages","url":"https://pipelines.actions.githubusercontent.com/vkHFzCL7Y5132px1YFZ6UPIsAtJbQxnm92SclbH7tXlkxLxmBM/_apis/pipelines/1/runs/1028/artifacts?artifactName=github-pages","expiresOn":"2022-[11](https://github.com/zhaochenyang20/zhaochenyang20.github.io/actions/runs/3541027231/jobs/5944888374#step:2:12)-25T[13](https://github.com/zhaochenyang20/zhaochenyang20.github.io/actions/runs/3541027231/jobs/5944888374#step:2:14):32:20.9022685Z","items":null}]}
Creating deployment with payload:
{
	"artifact_url": "https://pipelines.actions.githubusercontent.com/vkHFzCL7Y5132px1YFZ6UPIsAtJbQxnm92SclbH7tXlkxLxmBM/_apis/pipelines/1/runs/1028/artifacts?artifactName=github-pages&%24expand=SignedContent",
	"pages_build_version": "bda42ea19565838adf21ac3de6acdf037abcb23b",
	"oidc_token": "***"
}
Created deployment for bda42ea[19](https://github.com/zhaochenyang20/zhaochenyang20.github.io/actions/runs/3541027231/jobs/5944888374#step:2:20)565838adf21ac3de6acdf037abcb23b
{"page_url":"https://zhaochenyang[20](https://github.com/zhaochenyang20/zhaochenyang20.github.io/actions/runs/3541027231/jobs/5944888374#step:2:21).github.io/","status_url":"https://api.github.com/repos/zhaochenyang20/zhaochenyang20.github.io/pages/deployment/status/bda42ea19565838adf21ac3de6acdf037abcb23b","preview_url":""}
Unable to get deployment status.
Unable to get deployment status.
Unable to get deployment status.
Unable to get deployment status.
Unable to get deployment status.
Unable to get deployment status.
Unable to get deployment status.
Unable to get deployment status.
Unable to get deployment status.
Unable to get deployment status.
Too many errors, aborting!
Error: Failed with status code: 200
Deployment cancelled with https://api.github.com/repos/zhaochenyang20/zhaochenyang20.github.io/pages/deployment/cancel/bda42ea19565838adf[21](https://github.com/zhaochenyang20/zhaochenyang20.github.io/actions/runs/3541027231/jobs/5944888374#step:2:22)ac3de6acdf037abcb[23](https://github.com/zhaochenyang20/zhaochenyang20.github.io/actions/runs/3541027231/jobs/5944888374#step:2:24)b

Uninformative error

I'm trying to take this action into use, but I'm getting this error:

2022-08-12T13:32:04.0519222Z ##[error]Deployment failed, try again later.

And that is the only error-related output in the logs, as you can see below. Perhaps the backend returned an HTTP 429, or 503, who knows? I would be nice to know here if the problem is on my side in how I'm using the action, or on the receiving side.

2022-08-12T13:31:48.0140230Z Requested labels: ubuntu-latest
2022-08-12T13:31:48.0140277Z Job defined at: wolverian/crdts/.github/workflows/github-pages.yml@refs/heads/main
2022-08-12T13:31:48.0140318Z Waiting for a runner to pick up this job...
2022-08-12T13:31:48.2990892Z Job is waiting for a hosted runner to come online.
2022-08-12T13:31:52.5007876Z Job is about to start running on the hosted runner: Hosted Agent (hosted)
2022-08-12T13:31:56.6562297Z ##[debug]Starting: deploy
2022-08-12T13:31:56.6587371Z ##[debug]Cleaning runner temp folder: /home/runner/work/_temp
2022-08-12T13:31:56.6890688Z ##[debug]Starting: Set up job
2022-08-12T13:31:56.6891086Z Current runner version: '2.294.0'
2022-08-12T13:31:56.6913868Z ##[group]Operating System
2022-08-12T13:31:56.6914259Z Ubuntu
2022-08-12T13:31:56.6914555Z 20.04.4
2022-08-12T13:31:56.6914813Z LTS
2022-08-12T13:31:56.6915115Z ##[endgroup]
2022-08-12T13:31:56.6915432Z ##[group]Virtual Environment
2022-08-12T13:31:56.6915784Z Environment: ubuntu-20.04
2022-08-12T13:31:56.6916068Z Version: 20220807.1
2022-08-12T13:31:56.6916571Z Included Software: https://github.com/actions/virtual-environments/blob/ubuntu20/20220807.1/images/linux/Ubuntu2004-Readme.md
2022-08-12T13:31:56.6917231Z Image Release: https://github.com/actions/virtual-environments/releases/tag/ubuntu20%2F20220807.1
2022-08-12T13:31:56.6917618Z ##[endgroup]
2022-08-12T13:31:56.6917962Z ##[group]Virtual Environment Provisioner
2022-08-12T13:31:56.6918459Z 1.0.0.0-main-20220805-2
2022-08-12T13:31:56.6918759Z ##[endgroup]
2022-08-12T13:31:56.6919449Z ##[group]GITHUB_TOKEN Permissions
2022-08-12T13:31:56.6919942Z Contents: read
2022-08-12T13:31:56.6920191Z Metadata: read
2022-08-12T13:31:56.6920503Z Pages: write
2022-08-12T13:31:56.6920802Z ##[endgroup]
2022-08-12T13:31:56.6924543Z Secret source: Actions
2022-08-12T13:31:56.6925049Z ##[debug]Primary repository: wolverian/crdts
2022-08-12T13:31:56.6925491Z Prepare workflow directory
2022-08-12T13:31:56.7002145Z ##[debug]Creating pipeline directory: '/home/runner/work/crdts'
2022-08-12T13:31:56.7004300Z ##[debug]Creating workspace directory: '/home/runner/work/crdts/crdts'
2022-08-12T13:31:56.7005145Z ##[debug]Update context data
2022-08-12T13:31:56.7007278Z ##[debug]Evaluating job-level environment variables
2022-08-12T13:31:56.7698091Z ##[debug]Evaluating job container
2022-08-12T13:31:56.7701768Z ##[debug]Evaluating job service containers
2022-08-12T13:31:56.7703997Z ##[debug]Evaluating job defaults
2022-08-12T13:31:56.7780878Z Prepare all required actions
2022-08-12T13:31:56.7965944Z Getting action download info
2022-08-12T13:31:57.1963054Z Download action repository 'actions/deploy-pages@main' (SHA:e490850a64fea2143eb618fcd4453e397842ae0c)
2022-08-12T13:31:57.7246902Z ##[debug]Download 'https://api.github.com/repos/actions/deploy-pages/tarball/e490850a64fea2143eb618fcd4453e397842ae0c' to '/home/runner/work/_actions/_temp_c263d418-2197-4789-9630-d927a76f21a7/869e97f7-ed29-4bdd-9cde-f5908d397aa3.tar.gz'
2022-08-12T13:31:57.8185301Z ##[debug]Unwrap 'actions-deploy-pages-e490850' to '/home/runner/work/_actions/actions/deploy-pages/main'
2022-08-12T13:31:57.8253276Z ##[debug]Archive '/home/runner/work/_actions/_temp_c263d418-2197-4789-9630-d927a76f21a7/869e97f7-ed29-4bdd-9cde-f5908d397aa3.tar.gz' has been unzipped into '/home/runner/work/_actions/actions/deploy-pages/main'.
2022-08-12T13:31:57.8425878Z ##[debug]action.yml for action: '/home/runner/work/_actions/actions/deploy-pages/main/action.yml'.
2022-08-12T13:31:57.9551048Z ##[debug]Set step 'deployment' display name to: 'Deploy to GitHub Pages'
2022-08-12T13:31:57.9556966Z ##[debug]Collect running processes for tracking orphan processes.
2022-08-12T13:31:57.9794530Z ##[debug]Finishing: Set up job
2022-08-12T13:31:58.0003537Z ##[debug]Evaluating condition for step: 'Deploy to GitHub Pages'
2022-08-12T13:31:58.0058828Z ##[debug]Evaluating: success()
2022-08-12T13:31:58.0064544Z ##[debug]Evaluating success:
2022-08-12T13:31:58.0092651Z ##[debug]=> true
2022-08-12T13:31:58.0106233Z ##[debug]Result: true
2022-08-12T13:31:58.0149083Z ##[debug]Starting: Deploy to GitHub Pages
2022-08-12T13:31:58.0362584Z ##[debug]Loading inputs
2022-08-12T13:31:58.0372880Z ##[debug]Evaluating: github.token
2022-08-12T13:31:58.0373825Z ##[debug]Evaluating Index:
2022-08-12T13:31:58.0375939Z ##[debug]..Evaluating github:
2022-08-12T13:31:58.0377157Z ##[debug]..=> Object
2022-08-12T13:31:58.0391595Z ##[debug]..Evaluating String:
2022-08-12T13:31:58.0392404Z ##[debug]..=> 'token'
2022-08-12T13:31:58.0397864Z ##[debug]=> '***'
2022-08-12T13:31:58.0399650Z ##[debug]Result: '***'
2022-08-12T13:31:58.0403299Z ##[debug]Loading env
2022-08-12T13:31:58.0501755Z ##[group]Run actions/deploy-pages@main
2022-08-12T13:31:58.0502132Z with:
2022-08-12T13:31:58.0502553Z   emit_telemetry: false
2022-08-12T13:31:58.0503084Z   token: ***
2022-08-12T13:31:58.0503319Z   timeout: 600000
2022-08-12T13:31:58.0503609Z   error_count: 10
2022-08-12T13:31:58.0503957Z   reporting_interval: 5000
2022-08-12T13:31:58.0504297Z   artifact_name: github-pages
2022-08-12T13:31:58.0504559Z ##[endgroup]
2022-08-12T13:31:58.2258637Z ##[debug]all variables are set
2022-08-12T13:31:58.2261787Z ##[debug]ID token url is https://pipelines.actions.githubusercontent.com/KAk3tU9bDD89BS2jEU88XdbspNDmpx0MKZSJNYsYQZmw7JXO93/00000000-0000-0000-0000-000000000000/_apis/distributedtask/hubs/Actions/plans/527336bc-d81a-46c4-b8d4-d4b1f04c1243/jobs/e07742bd-189a-5079-918b-43f8b2f94b89/idtoken?api-version=2.0
2022-08-12T13:31:58.3193899Z ::add-mask::***
2022-08-12T13:31:58.3196792Z Actor: wolverian
2022-08-12T13:31:58.3197123Z Action ID: 2846999226
2022-08-12T13:31:58.3199624Z Artifact URL: https://pipelines.actions.githubusercontent.com/KAk3tU9bDD89BS2jEU88XdbspNDmpx0MKZSJNYsYQZmw7JXO93/_apis/pipelines/workflows/2846999226/artifacts?api-version=6.0-preview
2022-08-12T13:31:58.3779863Z {"count":1,"value":[{"containerId":236308,"size":5724160,"signedContent":null,"fileContainerResourceUrl":"https://pipelines.actions.githubusercontent.com/KAk3tU9bDD89BS2jEU88XdbspNDmpx0MKZSJNYsYQZmw7JXO93/_apis/resources/Containers/236308","type":"actions_storage","name":"github-pages","url":"https://pipelines.actions.githubusercontent.com/KAk3tU9bDD89BS2jEU88XdbspNDmpx0MKZSJNYsYQZmw7JXO93/_apis/pipelines/1/runs/22/artifacts?artifactName=github-pages","expiresOn":"2022-08-13T13:33:21.3249337Z","items":null}]}
2022-08-12T13:31:58.3781090Z Creating deployment with payload:
2022-08-12T13:31:58.3781384Z {
2022-08-12T13:31:58.3786372Z 	"artifact_url": "https://pipelines.actions.githubusercontent.com/KAk3tU9bDD89BS2jEU88XdbspNDmpx0MKZSJNYsYQZmw7JXO93/_apis/pipelines/1/runs/22/artifacts?artifactName=github-pages&%24expand=SignedContent",
2022-08-12T13:31:58.3787187Z 	"pages_build_version": "b67c4bc2b8da66096389e9c59cdd1d3353f6f175",
2022-08-12T13:31:58.3845636Z 	"oidc_token": "***"
2022-08-12T13:31:58.3846016Z }
2022-08-12T13:31:58.7746117Z Created deployment for b67c4bc2b8da66096389e9c59cdd1d3353f6f175
2022-08-12T13:31:58.7746787Z {"page_url":"https://wolverian.github.io/crdts/","status_url":"https://api.github.com/repos/wolverian/crdts/pages/deployment/status/b67c4bc2b8da66096389e9c59cdd1d3353f6f175","preview_url":""}
2022-08-12T13:31:58.7747179Z 
2022-08-12T13:31:58.7751993Z ::set-output name=page_url::https://wolverian.github.io/crdts/
2022-08-12T13:31:58.7771541Z ##[debug]steps.deployment.outputs.page_url='https://wolverian.github.io/crdts/'
2022-08-12T13:32:04.0519222Z ##[error]Deployment failed, try again later.
2022-08-12T13:32:04.0553276Z ##[debug]Node Action run completed with exit code 1
2022-08-12T13:32:04.0666765Z ##[debug]Finishing: Deploy to GitHub Pages
2022-08-12T13:32:04.0784766Z ##[debug]Starting: Complete job
2022-08-12T13:32:04.0786218Z Evaluate and set environment url
2022-08-12T13:32:04.0790155Z ##[debug]Evaluating: steps.deployment.outputs.page_url
2022-08-12T13:32:04.0790543Z ##[debug]Evaluating Index:
2022-08-12T13:32:04.0790858Z ##[debug]..Evaluating Index:
2022-08-12T13:32:04.0791204Z ##[debug]....Evaluating Index:
2022-08-12T13:32:04.0791515Z ##[debug]......Evaluating steps:
2022-08-12T13:32:04.0791840Z ##[debug]......=> Object
2022-08-12T13:32:04.0792179Z ##[debug]......Evaluating String:
2022-08-12T13:32:04.0792532Z ##[debug]......=> 'deployment'
2022-08-12T13:32:04.0792863Z ##[debug]....=> Object
2022-08-12T13:32:04.0793157Z ##[debug]....Evaluating String:
2022-08-12T13:32:04.0793457Z ##[debug]....=> 'outputs'
2022-08-12T13:32:04.0793763Z ##[debug]..=> Object
2022-08-12T13:32:04.0794081Z ##[debug]..Evaluating String:
2022-08-12T13:32:04.0794334Z ##[debug]..=> 'page_url'
2022-08-12T13:32:04.0795455Z ##[debug]=> 'https://wolverian.github.io/crdts/'
2022-08-12T13:32:04.0795889Z ##[debug]Result: 'https://wolverian.github.io/crdts/'
2022-08-12T13:32:04.0796771Z Evaluated environment url: https://wolverian.github.io/crdts/
2022-08-12T13:32:04.0797509Z Uploading runner diagnostic logs
2022-08-12T13:32:04.0853752Z ##[debug]Starting diagnostic file upload.
2022-08-12T13:32:04.0854135Z ##[debug]Setting up diagnostic log folders.
2022-08-12T13:32:04.0856320Z ##[debug]Creating diagnostic log files folder.
2022-08-12T13:32:04.0876543Z ##[debug]Copying 1 worker diagnostic logs.
2022-08-12T13:32:04.0894879Z ##[debug]Copying 1 runner diagnostic logs.
2022-08-12T13:32:04.0896254Z ##[debug]Zipping diagnostic files.
2022-08-12T13:32:04.0935696Z ##[debug]Uploading diagnostic metadata file.
2022-08-12T13:32:04.0965200Z ##[debug]Diagnostic file upload complete.
2022-08-12T13:32:04.0965851Z Completed runner diagnostic log upload
2022-08-12T13:32:04.0966216Z Cleaning up orphan processes
2022-08-12T13:32:04.1445581Z ##[debug]Finishing: Complete job
2022-08-12T13:32:04.1567166Z ##[debug]Finishing: deploy

Needs proxy support

For self-hosted runners that require a proxy, the Axios calls currently fail. I've proved out the PR here: #111

Please consider reviewing/merging it, or adding some other way to allow proxy input options.

Thanks!

Deployment fails if files are not writable or owned by root

Hi there,

I tried to deploy my site which is built with NIx and actions/deploy-pages would fail with a cryptic error message.

name: Continuous deployment

on:
  push:
    branches: [main]
  
permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: cd
  cancel-in-progress: true

jobs:
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}

    runs-on: ubuntu-latest

    steps:
      - name: Checkout repo
        uses: actions/checkout@v3

      - name: Install Nix
        uses: cachix/install-nix-action@v15
        with:
          extra_nix_config: access-tokens = github.com=${{ github.token }}

      - name: Build website
        run: nix build --print-build-logs

      - name: Setup GitHub Pages
        uses: actions/configure-pages@v1

      - name: Upload website
        uses: actions/upload-pages-artifact@v1
        with:
          path: public

      - name: Deploy website
        id: deployment
        uses: actions/deploy-pages@v1

Which outputs this:

Actor: danth
Action ID: 2761250916
Artifact URL: https://pipelines.actions.githubusercontent.com/TbYKgfAZOYa7gipiGxQgSbih1nRuFlBDNpZeQ6z2I00IpqUyZA/_apis/pipelines/workflows/2761250916/artifacts?api-version=6.0-preview
{"count":1,"value":[{"containerId":1480084,"size":61440,"signedContent":null,"fileContainerResourceUrl":"https://pipelines.actions.githubusercontent.com/TbYKgfAZOYa7gipiGxQgSbih1nRuFlBDNpZeQ6z2I00IpqUyZA/_apis/resources/Containers/1480084","type":"actions_storage","name":"github-pages","url":"https://pipelines.actions.githubusercontent.com/TbYKgfAZOYa7gipiGxQgSbih1nRuFlBDNpZeQ6z2I00IpqUyZA/_apis/pipelines/1/runs/14/artifacts?artifactName=github-pages","expiresOn":"2022-07-30T14:44:47.4503161Z","items":null}]}
Creating deployment with payload:
{
	"artifact_url": "https://pipelines.actions.githubusercontent.com/TbYKgfAZOYa7gipiGxQgSbih1nRuFlBDNpZeQ6z2I00IpqUyZA/_apis/pipelines/1/runs/14/artifacts?artifactName=github-pages&%24expand=SignedContent",
	"pages_build_version": "5d3a8f8ecf3635514f0046294ddc600728eb75c4",
	"oidc_token": "***"
}
Created deployment for 5d3a8f8ecf3635514f0046294ddc600728eb75c4
{"page_url":"https://danth.github.io/coricamu/","status_url":"https://api.github.com/repos/danth/coricamu/pages/deployment/status/5d3a8f8ecf3635514f0046294ddc600728eb75c4","preview_url":""}

Error: Deployment failed, try again later.

From my testing actions/deploy-pages fails if the files are either not writable or owned by root. The output of a Nix build is both not writable and owned by root. I worked around this by clearing the permissions after building:

cp --recursive --dereference --no-preserve=mode,ownership result public

I don't think this should fail, since I expect the file permissions be cleared on deployment. Even so, the error message should at least be more clear.

TypeError: Converting circular structure to JSON

When the deployment fails, an extra error is logged TypeError: Converting circular structure to JSON.

Run actions/deploy-pages@v1
Artifact exchange URL: https://pipelines.actions.githubusercontent.com/9OtalDJVyLyDdev6inEYQsch43zFDau4CbJSKDrBmMKW7l90L0/_apis/pipelines/workflows/4736187376/artifacts?api-version=6.0-preview
Creating Pages deployment with payload:
{
	"artifact_url": "https://pipelines.actions.githubusercontent.com/9OtalDJVyLyDdev6inEYQsch43zFDau4CbJSKDrBmMKW7l90L0/_apis/pipelines/1/runs/8451/artifacts?artifactName=github-pages&%24expand=SignedContent",
	"pages_build_version": "61bafce1df6a9bf8ae2606d1728980066c6a3817",
	"oidc_token": "***"
}
Error: Creating Pages deployment failed
Error: HttpError: Deployment request failed for 61bafce1df6a9bf8ae2606d1728980066c6a3817 due to in progress deployment. Please cancel 3f30596e81bc4367e96f8af01be23cd080f83ead first or wait for it to complete.
    at /home/runner/work/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/node_modules/@octokit/request/dist-node/index.js:86:1
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at createPagesDeployment (/home/runner/work/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/src/api-client.js:116:1)
    at Deployment.create (/home/runner/work/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/src/deployment.js:58:1)
    at main (/home/runner/work/_actions/actions/deploy-pages/v1/webpack:/deploy-pages/src/index.js:30:1)
Error: TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'TLSSocket'
    |     property '_httpMessage' -> object with constructor 'ClientRequest'
    --- property 'socket' closes the circle

I believe the issue is located here

core.debug(JSON.stringify(error))
where the function call JSON.stringify(error) fails when the error contains cyclic references.

A possible solution might be to use https://www.npmjs.com/package/serialize-error to remove the cyclic references from the error before passing the result to JSON.stringify.

Unable to find uploaded artifact - [ Error: No uploaded artifact was found! Please check if there are any errors at build step, or uploaded artifact name is correct. ]

I tried deploying to my GH Pages after a couple of months and i am unable to do it.

The following is the error I am getting -

image

My workflow file currently looks like so -

# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Node.js CI

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

permissions:
  contents: read
  deployments: write
  pages: write
  id-token: write

# Allow one concurrent deployment
concurrency:
  group: "pages"
  cancel-in-progress: true

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [18.x]
        # See supported Node.js release schedule at https://nodejs.org/en/about/releases/

    steps:
    - uses: actions/checkout@v3
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v3
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - run: npm ci
    - run: npm run build --if-present
#     - run: npm test
    - uses: actions/upload-artifact@master
      with:
        name: 'artifact'
        path: './build' 
  deploy:
    needs: build
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
    - name: Setup Pages
      uses: actions/configure-pages@v2
    - uses: actions/download-artifact@master
      with:
        name: 'artifact'
    - name: Upload artifact
      uses: actions/upload-pages-artifact@v1
      with:
        name: 'artifact'
        path: '/home/runner/work/punit1108.github.io/punit1108.github.io'
    - run: ls /home/runner/work/punit1108.github.io/punit1108.github.io
    - name: Deploy to GitHub Pages
      id: deployment
      uses: actions/deploy-pages@v1

Artifact not fully deployed, missing files.

In my workflow job, I'm currently using a combination of the upload-pages-artifact and deploy-pages actions.
I've set my pages "Build and deployment" source to Github Actions, so there's no gh-pages branch present.

When using the deploy-pages action, not all files in the artifact archive are getting deployed.
There are some files that are simply not present in the deployed pages endpoint.

For example, this file: 2017.2.5.json returns a 404.
However, it is clearly present in the artifact produced by this workflow run. The artifacts can be downloaded here, you can see 2017.2.5.json is actually present.
This particular workflow run tries to deploy 465 files in the root of the github-pages deployment.

It might be a coincidence, but when I use a smaller amount of files as my output, it does seem to upload all of them.
For example, this particular run only uploaded 7 files

The actual deploy-pages action doesn't throw any warnings or errors, so i'm confused as to why this happens.

Source:
python-app.yml (workflow)

Is there an unwritten limit on how many files should be uploaded to the root of a github page? (other than the 10GB stated in the upload-pages-artifact documentation)

Deploy website to custom url route

I am building a site for my repo using a github actions workflow. To deploy the website, I run the below action. How can I change the url where this site is deployed?

Specifically, I would like to add a route to the end so that instead of deploying to example.com/{repo_name} it deploys to example.com/{repo_name}/notebook. It seems to be set by ${{steps.deployment.outputs.page_url}}. I tried adding notebook to the end of this like ${{steps.deployment.outputs.page_url}}notebook with no luck.

Here is my deploy action that runs after build in the yaml:

 deploy:
    needs: build
    if: github.ref == 'refs/heads/main'
    permissions:
      pages: write
      id-token: write

    environment:
      name: github-pages
      url: ${{steps.deployment.outputs.page_url}} # How can i change this url??

    runs-on: ubuntu-latest
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v1

It seems this is not supported out of the box right now but would be a very useful feature in the future

Workflow cancellation left pages deploy wedged

I recently had a problem where my pages deploy was stuck in a state where it would perpetually fail with:

Deployment request failed for 75152aed304ba9378fd527c226e9849ca39d5eda due to in progress deployment. Please cancel 4cb1cd27f0f1bceb7df2e4b7cb82785922dc978d first or wait for it to complete.

(Created a thread about that here: https://github.community/t/pages-deploy-wedged-incorrect-request-failed-due-to-in-progress-deployment/234793)

I eventually got the issue unwedged manually using the GitHub API to delete the relevant deployments. It seems what happened was a deploy job was cancelled midway through, but that cancellation failed: https://github.com/google/ink-stroke-modeler/runs/5457992551

Error: Error: Request failed with status code 404
{"message":"Not Found","documentation_url":"https://docs.github.com/rest"}
Sending telemetry for run id 1948901688
Deployment cancellation failed Error: Request failed with status code 401
[...]
url: 'https://api.github.com/repos/google/ink-stroke-modeler/pages/deployment/cancel/4cb1cd27f0f1bceb7df2e4b7cb82785922dc978d',
[...]

That URL seems to be coming from here:

const pagesCancelDeployEndpoint = `https://api.github.com/repos/${process.env.GITHUB_REPOSITORY}/pages/deployment/cancel/${process.env.GITHUB_SHA}`

But I'm confused because I don't see that API endpoint in the documentation: https://docs.github.com/en/rest/reference/pages

And I wasn't able to get it to work myself with curl, I had to use the deployments endpoint to search for and delete the relevant deployments instead: https://docs.github.com/en/rest/reference/deployments#delete-a-deployment

Was this problem due to a bug in cancelHandler?

Documentation Questions

Hi! We are beginning to use this and have some confusion. Would someone be able to help clarify a few items?

  1. This seems to use Github Environments but Github Pages configuration references branches (Your GitHub Pages site is currently being built from the /docs folder in the gh-pages branch.). Is it expected to use branches, or environments?

  2. There seems to be an implied dependency on actions/upload-pages-artifact. This upload-pages-artifact action assumes your code is in the ./_site directory, but the deploy-pages action seems to assume your code is in ./docs. Is this true? I had to hardcode either one or the other so they were both the same?

  3. Is the expected output of this job a new commit to the gh-pages branch?

Feature: retain Javadoc of previous releases

I have a repository that uploads Javadoc of each release as gh-pages. The problem is that every time a new version is published, the Javadoc of the previous releases of my library is lost.

Is there any way to retain the Javadoc of previous releases?

Thank you!

Content deployment failure

When building an app with create-react-app and then running this deploy action, I get the following error:

Artifact could not be deployed. Please ensure the content does not contain any hard links, symlinks and total size is less than 10GB.

However none of my build content seems to violate these conditions. I'm actually not sure what a hard link is in this context. Please see the run here: https://github.com/oliverbenns/joy-theme-creator/actions/runs/3147053516/jobs/5116187912

Warning about save-state and set-output commands

I have a workflow that uses this action, and now when it runs I get a warning in this action's output:
Warning: The 'set-output' command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
I assume this is something internal to this action, so I thought I'd just open an issue for it. If it is something on my end that needs to change then please let me know.

Invalid deployment branch and no branch protection rules set in the environment

https://github.com/ray-project/kuberay/runs/6090920605?check_suite_focus=true

We have Ci jobs using mkdocs to deploy github pages. However, seems release plugin doesn't work well. We do see following error

"Invalid deployment branch and no branch protection rules set in the environment. Deployments are only allowed from gh-pages

I am not sure how we can fix this problem. Any clues?

Run actions/deploy-pages@v1
Actor: Jeffwan
Action ID: 2149399226
Artifact URL: https://pipelines.actions.githubusercontent.com/tKRfNbyaGNzId1XJxdkv7FJQ4Qp5iGkvmd6XKRWbtSm3T51lc7/_apis/pipelines/workflows/2149399226/artifacts?api-version=6.0-preview
{"count":1,"value":[{"containerId":24295065,"size":[8](https://github.com/ray-project/kuberay/runs/6090920605?check_suite_focus=true#step:2:8)2[9](https://github.com/ray-project/kuberay/runs/6090920605?check_suite_focus=true#step:2:9)440,"signedContent":null,"fileContainerResourceUrl":"https://pipelines.actions.githubusercontent.com/tKRfNbyaGNzId1XJxdkv7FJQ4Qp5iGkvmd6XKRWbtSm3T51lc7/_apis/resources/Containers/24295065","type":"actions_storage","name":"github-pages","url":"https://pipelines.actions.githubusercontent.com/tKRfNbyaGNzId1XJxdkv7FJQ4Qp5iGkvmd6XKRWbtSm3T51lc7/_apis/pipelines/1/runs/413/artifacts?artifactName=github-pages","expiresOn":"2022-07-19T07:42:[11](https://github.com/ray-project/kuberay/runs/6090920605?check_suite_focus=true#step:2:11).4562135Z","items":null}]}
Creating deployment with payload:
{
	"artifact_url": "https://pipelines.actions.githubusercontent.com/tKRfNbyaGNzId1XJxdkv7FJQ4Qp5iGkvmd6XKRWbtSm3T51lc7/_apis/pipelines/1/runs/413/artifacts?artifactName=github-pages&%24expand=SignedContent",
	"pages_build_version": "c22f2ae76759e95bb3284ba5c2af0c359fec9[14](https://github.com/ray-project/kuberay/runs/6090920605?check_suite_focus=true#step:2:14)0",
	"oidc_token": "***"
}
Failed to create deployment for c22f2ae76759e95bb3284ba5c2af0c359fec9140.
{"message":"Invalid deployment branch and no branch protection rules set in the environment. Deployments are only allowed from gh-pages","documentation_url":"https://docs.github.com/rest/reference/repos#create-a-github-pages-deployment"}
Error: Error: Request failed with status code 400
Error: Error: Request failed with status code 400
name: ci
on:
  push:
    branches:
      - master
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        with:
          python-version: 3.x
      - run: pip install mkdocs-material
      - run: mkdocs gh-deploy --force

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.