question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

How to preserve file permissions in zip package

See original GitHub issue

When deploying zip package to Linux function app on consumption plan using this action, the deployment was succeeded but executable permission for each file is lost. Could you please let me know how to preserve the permissions after the deployment?

I’m trying to deploy the package including puppeteer to Linux consumption function app from this repository and it needs executable permission for the binary file chrome.

According to the action’s log, the binary chrome was executable before archiving.

2020-12-06T00:03:32.7725518Z -rwxr-xr-x 1 runner docker 268577208 Dec 6 00:03 ./node_modules/puppeteer/.local-chromium/linux-818858/chrome-linux/chrome

After the deployment, the permission is lost and it cannot become executable. # this can be checked by /api/showchromepermission in the above my repo image

The permission lost causes failure to launch chrome

The action and full log are followings.

yaml for GitHub Action
name: Deploy Node.js project to Azure Function App

on:
  [push]

env:
  AZURE_FUNCTIONAPP_NAME: puppeteerga      # set this to your application's name
  AZURE_FUNCTIONAPP_PACKAGE_PATH: '.'      # set this to the path to your web app project, defaults to the repository root
  NODE_VERSION: '12.x'                     # set this to the node version to use (supports 8.x, 10.x, 12.x)

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
    - name: 'Checkout GitHub Action'
      uses: actions/checkout@master

    - name: Setup Node ${{ env.NODE_VERSION }} Environment
      uses: actions/setup-node@v1
      with:
        node-version: ${{ env.NODE_VERSION }}

    - name: 'Resolve Project Dependencies Using Npm'
      shell: bash
      run: |
        pushd './${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}'
        npm install
        npm run build --if-present
        npm run test --if-present
        ls -al ./node_modules/puppeteer/.local-chromium/linux-818858/chrome-linux/chrome
        popd
    - name: 'Run Azure Functions Action'
      uses: Azure/functions-action@v1
      id: fa
      with:
        app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
        package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
        publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
Full GitHub Action's log

2020-12-06T00:03:09.7677286Z ##[section]Starting: Request a runner to run this job 2020-12-06T00:03:09.9550839Z Can't find any online and idle self-hosted runner in current repository that matches the required labels: 'ubuntu-latest' 2020-12-06T00:03:09.9550941Z Can't find any online and idle self-hosted runner in current repository's account/organization that matches the required labels: 'ubuntu-latest' 2020-12-06T00:03:09.9551324Z Found online and idle hosted runner in current repository's account/organization that matches the required labels: 'ubuntu-latest' 2020-12-06T00:03:10.1008331Z ##[section]Finishing: Request a runner to run this job 2020-12-06T00:03:17.6831500Z Current runner version: '2.274.2' 2020-12-06T00:03:17.6867533Z ##[group]Operating System 2020-12-06T00:03:17.6868680Z Ubuntu 2020-12-06T00:03:17.6869163Z 18.04.5 2020-12-06T00:03:17.6869678Z LTS 2020-12-06T00:03:17.6870182Z ##[endgroup] 2020-12-06T00:03:17.6870837Z ##[group]Virtual Environment 2020-12-06T00:03:17.6871566Z Environment: ubuntu-18.04 2020-12-06T00:03:17.6872224Z Version: 20201129.1 2020-12-06T00:03:17.6873559Z Included Software: https://github.com/actions/virtual-environments/blob/ubuntu18/20201129.1/images/linux/Ubuntu1804-README.md 2020-12-06T00:03:17.6874546Z ##[endgroup] 2020-12-06T00:03:17.6877960Z Prepare workflow directory 2020-12-06T00:03:17.7720424Z Prepare all required actions 2020-12-06T00:03:17.7732627Z Getting action download info 2020-12-06T00:03:17.9846961Z Download action repository 'actions/checkout@master' 2020-12-06T00:03:20.0390907Z Download action repository 'actions/setup-node@v1' 2020-12-06T00:03:20.2143423Z Download action repository 'Azure/functions-action@v1' 2020-12-06T00:03:22.5790613Z ##[group]Run actions/checkout@master 2020-12-06T00:03:22.5791307Z with: 2020-12-06T00:03:22.5791971Z repository: horihiro/puppeteer-permission-cicd 2020-12-06T00:03:22.5793289Z token: *** 2020-12-06T00:03:22.5793803Z ssh-strict: true 2020-12-06T00:03:22.5794320Z persist-credentials: true 2020-12-06T00:03:22.5794813Z clean: true 2020-12-06T00:03:22.5795198Z fetch-depth: 1 2020-12-06T00:03:22.5795593Z lfs: false 2020-12-06T00:03:22.5795973Z submodules: false 2020-12-06T00:03:22.5796359Z env: 2020-12-06T00:03:22.5796826Z AZURE_FUNCTIONAPP_NAME: puppeteerga 2020-12-06T00:03:22.5797422Z AZURE_FUNCTIONAPP_PACKAGE_PATH: . 2020-12-06T00:03:22.5797886Z NODE_VERSION: 12.x 2020-12-06T00:03:22.5798283Z ##[endgroup] 2020-12-06T00:03:23.5414567Z Syncing repository: horihiro/puppeteer-permission-cicd 2020-12-06T00:03:23.5415630Z ##[group]Getting Git version info 2020-12-06T00:03:23.5417070Z Working directory is '/home/runner/work/puppeteer-permission-cicd/puppeteer-permission-cicd' 2020-12-06T00:03:23.5420670Z [command]/usr/bin/git version 2020-12-06T00:03:23.5427850Z git version 2.29.2 2020-12-06T00:03:23.5437988Z ##[endgroup] 2020-12-06T00:03:23.5439780Z Deleting the contents of '/home/runner/work/puppeteer-permission-cicd/puppeteer-permission-cicd' 2020-12-06T00:03:23.5442079Z ##[group]Initializing the repository 2020-12-06T00:03:23.5443694Z [command]/usr/bin/git init /home/runner/work/puppeteer-permission-cicd/puppeteer-permission-cicd 2020-12-06T00:03:23.5449421Z Initialized empty Git repository in /home/runner/work/puppeteer-permission-cicd/puppeteer-permission-cicd/.git/ 2020-12-06T00:03:23.5452485Z [command]/usr/bin/git remote add origin https://github.com/horihiro/puppeteer-permission-cicd 2020-12-06T00:03:23.5453906Z ##[endgroup] 2020-12-06T00:03:23.5454458Z ##[group]Disabling automatic garbage collection 2020-12-06T00:03:23.5455288Z [command]/usr/bin/git config --local gc.auto 0 2020-12-06T00:03:23.5455781Z ##[endgroup] 2020-12-06T00:03:23.5457312Z ##[group]Setting up auth 2020-12-06T00:03:23.5458205Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand 2020-12-06T00:03:23.5459694Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || : 2020-12-06T00:03:23.5461344Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader 2020-12-06T00:03:23.5463655Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || : 2020-12-06T00:03:23.5465712Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** 2020-12-06T00:03:23.5466607Z ##[endgroup] 2020-12-06T00:03:23.5467126Z ##[group]Fetching the repository 2020-12-06T00:03:23.5468827Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --progress --no-recurse-submodules --depth=1 origin +eb18d606763ef6417647df90d95b8f77da64ac9a:refs/remotes/origin/master 2020-12-06T00:03:23.5470445Z remote: Enumerating objects: 27, done. 2020-12-06T00:03:23.5471046Z remote: Counting objects: 3% (1/27) 2020-12-06T00:03:23.5471615Z remote: Counting objects: 7% (2/27) 2020-12-06T00:03:23.5472167Z remote: Counting objects: 11% (3/27) 2020-12-06T00:03:23.5472738Z remote: Counting objects: 14% (4/27) 2020-12-06T00:03:23.5473292Z remote: Counting objects: 18% (5/27) 2020-12-06T00:03:23.5473859Z remote: Counting objects: 22% (6/27) 2020-12-06T00:03:23.5474411Z remote: Counting objects: 25% (7/27) 2020-12-06T00:03:23.5474977Z remote: Counting objects: 29% (8/27) 2020-12-06T00:03:23.5475690Z remote: Counting objects: 33% (9/27) 2020-12-06T00:03:23.5476242Z remote: Counting objects: 37% (10/27) 2020-12-06T00:03:23.5476906Z remote: Counting objects: 40% (11/27) 2020-12-06T00:03:23.5477472Z remote: Counting objects: 44% (12/27) 2020-12-06T00:03:23.5478034Z remote: Counting objects: 48% (13/27) 2020-12-06T00:03:23.5478607Z remote: Counting objects: 51% (14/27) 2020-12-06T00:03:23.5479154Z remote: Counting objects: 55% (15/27) 2020-12-06T00:03:23.5479717Z remote: Counting objects: 59% (16/27) 2020-12-06T00:03:23.5480267Z remote: Counting objects: 62% (17/27) 2020-12-06T00:03:23.5480831Z remote: Counting objects: 66% (18/27) 2020-12-06T00:03:23.5481381Z remote: Counting objects: 70% (19/27) 2020-12-06T00:03:23.5481941Z remote: Counting objects: 74% (20/27) 2020-12-06T00:03:23.5482491Z remote: Counting objects: 77% (21/27) 2020-12-06T00:03:23.5483224Z remote: Counting objects: 81% (22/27) 2020-12-06T00:03:23.5483780Z remote: Counting objects: 85% (23/27) 2020-12-06T00:03:23.5484350Z remote: Counting objects: 88% (24/27) 2020-12-06T00:03:23.5485001Z remote: Counting objects: 92% (25/27) 2020-12-06T00:03:23.5485517Z remote: Counting objects: 96% (26/27) 2020-12-06T00:03:23.5486230Z remote: Counting objects: 100% (27/27) 2020-12-06T00:03:23.5486907Z remote: Counting objects: 100% (27/27), done. 2020-12-06T00:03:23.5487487Z remote: Compressing objects: 4% (1/22) 2020-12-06T00:03:23.5488047Z remote: Compressing objects: 9% (2/22) 2020-12-06T00:03:23.5488619Z remote: Compressing objects: 13% (3/22) 2020-12-06T00:03:23.5489175Z remote: Compressing objects: 18% (4/22) 2020-12-06T00:03:23.5489754Z remote: Compressing objects: 22% (5/22) 2020-12-06T00:03:23.5490329Z remote: Compressing objects: 27% (6/22) 2020-12-06T00:03:23.5490889Z remote: Compressing objects: 31% (7/22) 2020-12-06T00:03:23.5491457Z remote: Compressing objects: 36% (8/22) 2020-12-06T00:03:23.5492014Z remote: Compressing objects: 40% (9/22) 2020-12-06T00:03:23.5492590Z remote: Compressing objects: 45% (10/22) 2020-12-06T00:03:23.5493157Z remote: Compressing objects: 50% (11/22) 2020-12-06T00:03:23.5493737Z remote: Compressing objects: 54% (12/22) 2020-12-06T00:03:23.5494297Z remote: Compressing objects: 59% (13/22) 2020-12-06T00:03:23.5494872Z remote: Compressing objects: 63% (14/22) 2020-12-06T00:03:23.5495447Z remote: Compressing objects: 68% (15/22) 2020-12-06T00:03:23.5496008Z remote: Compressing objects: 72% (16/22) 2020-12-06T00:03:23.5496582Z remote: Compressing objects: 77% (17/22) 2020-12-06T00:03:23.5497135Z remote: Compressing objects: 81% (18/22) 2020-12-06T00:03:23.5497707Z remote: Compressing objects: 86% (19/22) 2020-12-06T00:03:23.5498264Z remote: Compressing objects: 90% (20/22) 2020-12-06T00:03:23.5498837Z remote: Compressing objects: 95% (21/22) 2020-12-06T00:03:23.5499395Z remote: Compressing objects: 100% (22/22) 2020-12-06T00:03:23.5500026Z remote: Compressing objects: 100% (22/22), done. 2020-12-06T00:03:23.5501094Z remote: Total 27 (delta 2), reused 22 (delta 2), pack-reused 0 2020-12-06T00:03:23.5627784Z From https://github.com/horihiro/puppeteer-permission-cicd 2020-12-06T00:03:23.5629185Z * [new ref] eb18d606763ef6417647df90d95b8f77da64ac9a -> origin/master 2020-12-06T00:03:23.5704090Z ##[endgroup] 2020-12-06T00:03:23.5705721Z ##[group]Determining the checkout info 2020-12-06T00:03:23.5706296Z ##[endgroup] 2020-12-06T00:03:23.5706919Z ##[group]Checking out the ref 2020-12-06T00:03:23.5708291Z [command]/usr/bin/git checkout --progress --force -B master refs/remotes/origin/master 2020-12-06T00:03:23.5810259Z Reset branch 'master' 2020-12-06T00:03:23.5818337Z Branch 'master' set up to track remote branch 'master' from 'origin'. 2020-12-06T00:03:23.5829756Z ##[endgroup] 2020-12-06T00:03:23.5894113Z [command]/usr/bin/git log -1 --format='%H' 2020-12-06T00:03:23.5927565Z 'eb18d606763ef6417647df90d95b8f77da64ac9a' 2020-12-06T00:03:23.6119413Z ##[group]Run actions/setup-node@v1 2020-12-06T00:03:23.6119872Z with: 2020-12-06T00:03:23.6120266Z node-version: 12.x 2020-12-06T00:03:23.6120719Z always-auth: false 2020-12-06T00:03:23.6121096Z env: 2020-12-06T00:03:23.6121660Z AZURE_FUNCTIONAPP_NAME: puppeteerga 2020-12-06T00:03:23.6122168Z AZURE_FUNCTIONAPP_PACKAGE_PATH: . 2020-12-06T00:03:23.6123120Z NODE_VERSION: 12.x 2020-12-06T00:03:23.6123481Z ##[endgroup] 2020-12-06T00:03:23.7178836Z [command]/opt/hostedtoolcache/node/12.20.0/x64/bin/node --version 2020-12-06T00:03:23.8586454Z v12.20.0 2020-12-06T00:03:23.8606809Z [command]/opt/hostedtoolcache/node/12.20.0/x64/bin/npm --version 2020-12-06T00:03:24.4434245Z 6.14.8 2020-12-06T00:03:24.4587005Z ##[group]Run pushd './.' 2020-12-06T00:03:24.4587588Z pushd './.' 2020-12-06T00:03:24.4587993Z npm install 2020-12-06T00:03:24.4588486Z npm run build --if-present 2020-12-06T00:03:24.4589029Z npm run test --if-present 2020-12-06T00:03:24.4589851Z ls -al ./node_modules/puppeteer/.local-chromium/linux-818858/chrome-linux/chrome 2020-12-06T00:03:24.4590647Z popd 2020-12-06T00:03:24.4634831Z shell: /bin/bash --noprofile --norc -e -o pipefail {0} 2020-12-06T00:03:24.4635380Z env: 2020-12-06T00:03:24.4635904Z AZURE_FUNCTIONAPP_NAME: puppeteerga 2020-12-06T00:03:24.4636531Z AZURE_FUNCTIONAPP_PACKAGE_PATH: . 2020-12-06T00:03:24.4637045Z NODE_VERSION: 12.x 2020-12-06T00:03:24.4637460Z ##[endgroup] 2020-12-06T00:03:24.4721956Z ~/work/puppeteer-permission-cicd/puppeteer-permission-cicd ~/work/puppeteer-permission-cicd/puppeteer-permission-cicd 2020-12-06T00:03:26.3530588Z 2020-12-06T00:03:26.3540247Z > puppeteer@5.5.0 install /home/runner/work/puppeteer-permission-cicd/puppeteer-permission-cicd/node_modules/puppeteer 2020-12-06T00:03:26.3562048Z > node install.js 2020-12-06T00:03:26.3575027Z 2020-12-06T00:03:27.3031708Z 2020-12-06T00:03:32.1249937Z Chromium (818858) downloaded to /home/runner/work/puppeteer-permission-cicd/puppeteer-permission-cicd/node_modules/puppeteer/.local-chromium/linux-818858 2020-12-06T00:03:32.2191270Z npm WARN linuxconsumption@1.0.0 No description 2020-12-06T00:03:32.2264835Z npm WARN linuxconsumption@1.0.0 No repository field. 2020-12-06T00:03:32.2336300Z npm WARN linuxconsumption@1.0.0 No license field. 2020-12-06T00:03:32.2338077Z 2020-12-06T00:03:32.2376647Z added 54 packages from 75 contributors and audited 54 packages in 7.128s 2020-12-06T00:03:32.2848891Z 2020-12-06T00:03:32.2850642Z 8 packages are looking for funding 2020-12-06T00:03:32.2851668Z run `npm fund` for details 2020-12-06T00:03:32.2852358Z 2020-12-06T00:03:32.2866170Z found 0 vulnerabilities 2020-12-06T00:03:32.2866778Z 2020-12-06T00:03:32.7582878Z 2020-12-06T00:03:32.7585936Z > linuxconsumption@1.0.0 test /home/runner/work/puppeteer-permission-cicd/puppeteer-permission-cicd 2020-12-06T00:03:32.7587402Z > echo "No tests yet..." 2020-12-06T00:03:32.7587875Z 2020-12-06T00:03:32.7627240Z No tests yet... 2020-12-06T00:03:32.7725518Z -rwxr-xr-x 1 runner docker 268577208 Dec 6 00:03 ./node_modules/puppeteer/.local-chromium/linux-818858/chrome-linux/chrome 2020-12-06T00:03:32.7727913Z ~/work/puppeteer-permission-cicd/puppeteer-permission-cicd 2020-12-06T00:03:32.7797223Z ##[group]Run Azure/functions-action@v1 2020-12-06T00:03:32.7797767Z with: 2020-12-06T00:03:32.7798319Z app-name: puppeteerga 2020-12-06T00:03:32.7798947Z package: . 2020-12-06T00:03:32.7812817Z publish-profile: *** 2020-12-06T00:03:32.7813236Z env: 2020-12-06T00:03:32.7813710Z AZURE_FUNCTIONAPP_NAME: puppeteerga 2020-12-06T00:03:32.7814295Z AZURE_FUNCTIONAPP_PACKAGE_PATH: . 2020-12-06T00:03:32.7814755Z NODE_VERSION: 12.x 2020-12-06T00:03:32.7815147Z ##[endgroup] 2020-12-06T00:03:33.0583209Z ##[Initialize] 2020-12-06T00:03:33.0586869Z ##[ValidateParameter] 2020-12-06T00:03:33.0755526Z Successfully passed SCM crednetial from new publishProfile 2020-12-06T00:03:33.0762441Z ##[ValidateAzureResource] 2020-12-06T00:03:33.0765405Z Using SCM credential for authentication, GitHub Action will not perform resource validation. 2020-12-06T00:03:34.0168472Z Sucessfully acquired app settings from function app (SCM)! 2020-12-06T00:03:34.0169735Z ##[PreparePublishContent] 2020-12-06T00:03:34.0172906Z Will archive . into /home/runner/work/_temp/temp_web_package_6067574154394939.zip as function app content 2020-12-06T00:03:46.0712750Z Will use api/zipdeploy to deploy (scm credential) 2020-12-06T00:03:47.0199292Z ##[PublishContent] 2020-12-06T00:03:47.0202226Z Setting SCM_DO_BUILD_DURING_DEPLOYMENT in Kudu container to false 2020-12-06T00:03:47.0203563Z Update using Client.updateAppSettingViaKudu 2020-12-06T00:03:47.9001928Z Response with status code 204 2020-12-06T00:03:53.7477813Z App setting SCM_DO_BUILD_DURING_DEPLOYMENT propagated to Kudu container 2020-12-06T00:03:53.7479212Z Setting ENABLE_ORYX_BUILD in Kudu container to false 2020-12-06T00:03:53.7480613Z Update using Client.updateAppSettingViaKudu 2020-12-06T00:03:54.6186544Z Response with status code 204 2020-12-06T00:04:00.5242077Z App setting ENABLE_ORYX_BUILD propagated to Kudu container 2020-12-06T00:04:00.5243558Z Package deployment using ZIP Deploy initiated. 2020-12-06T00:05:28.8878013Z Deploy logs can be viewed at https://puppeteerga.scm.azurewebsites.net/api/deployments/be7da561f3974c39a19a7b4d071cdde0/log 2020-12-06T00:05:28.8882435Z Successfully deployed web package to App Service. 2020-12-06T00:05:30.5999946Z Successfully updated deployment History at https://puppeteerga.scm.azurewebsites.net/api/deployments/eb18d606763ef6417647df90d95b8f77da64ac9a1607213129742 2020-12-06T00:05:31.4270716Z Response with status code 204 2020-12-06T00:05:32.2973086Z Response with status code 204 2020-12-06T00:05:33.1667686Z Response with status code 204 2020-12-06T00:05:33.1683152Z ##[ValidatePublishedContent] 2020-12-06T00:05:33.1873948Z Post job cleanup. 2020-12-06T00:05:33.2977258Z [command]/usr/bin/git version 2020-12-06T00:05:33.3045521Z git version 2.29.2 2020-12-06T00:05:33.3089172Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand 2020-12-06T00:05:33.3133776Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || : 2020-12-06T00:05:33.3415339Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader 2020-12-06T00:05:33.3454712Z http.https://github.com/.extraheader 2020-12-06T00:05:33.3464375Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader 2020-12-06T00:05:33.3511821Z [command]/usr/bin/git submodule foreach --recursive git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || : 2020-12-06T00:05:33.3833341Z Cleaning up orphan processes

FYI: Comparison to other deployment ways

  1. publish by func command w/ --build remote -> permissions is preserved image

  2. publish by func -> permissions is not preserved image But it can be changed to executable from function’s code. After invoking /api/makechromexecutable in above my repo, the binary becames executable. image

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:2
  • Comments:23 (9 by maintainers)

github_iconTop GitHub Comments

1reaction
Choonstercommented, Nov 27, 2021

@horihiro Thanks, using azure/login@v1 instead of the publish-profile input worked; my app was able to run Playwright.

(For reference, this is the change I made)

0reactions
horihirocommented, Dec 12, 2021

The original issue is due to the deployment method (ZipDeploy or Run From Package).

Read more comments on GitHub >

github_iconTop Results From Across the Web

Can i store unix permissions in a zip file (built with apache ant)?
You cannot store Linux/Unix file permissions in a ZIP file. Edit (after comments) by using the "external attributes" field inside the ZIP ......
Read more >
How can I change the permission on a compressed zipped ...
a. Right click on folder and select “Properties” from Context Menu. b.
Read more >
Zip doesn't preserve file permissions on Linux #2592 - GitHub
The zip file contents are correct, but linux file permissions (ugoa rwx) are not preserved within the zip file, when run on Linux....
Read more >
Unzipping file whilst getting correct permissions? - Super User
Usually, the Unix unzip restores file permissions. It may be that the ZIP file has been created without file permissions stored (probably with ......
Read more >
Folder permissions when zip and unzip on Windows
That will create a file with all of the rights stored in it, keep it with the zip. To restore [unzip the file...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found