linux 如何在GitHub操作中更新PATH

bqucvtff  于 2022-12-11  发布在  Linux
关注(0)|答案(1)|浏览(98)

我正在尝试更新GitHub CI中Linux VM中的路径变量。
我尝试的是:

  • export PATH="${PATH}:$ANDROID_SDK_ROOT/cmdline-tools/cmdline-tools/bin"
  • export PATH=$ANDROID_SDK_ROOT/cmdline-tools/cmdline-tools/bin:$PATH

但似乎没有什么工作,因为当我尝试echo时,它没有返回我所期望的结果。它列出的是:

/home/runner/.local/bin
/opt/pipx_bin
/home/runner/.cargo/bin
/home/runner/.config/composer/vendor/bin
/usr/local/.ghcup/bin
/home/runner/.dotnet/tools
/snap/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin

它应该包含(或至少包含这样的内容):

/usr/lib/android-sdk/cmdline-tools/cmdline-tools/bin

完整作业详细信息:https://github.com/maifeeulasad/unmukto/actions/runs/3590283087/jobs/6043518013

raogr8fs

raogr8fs1#

它 * 确实 * 会被添加到$PATH中,但你不能在后续步骤中使用它,因为GitHub操作会将步骤彼此隔离。如果你在更新$PATH的同一个步骤中运行sdkmanager --version,它就可以工作。使用GitHub操作语法添加一个系统路径到$PATH中,并在作业的其余步骤中保持它:
在系统PATH变量前面添加一个目录,并自动使其可用于当前作业中的所有后续操作;当前运行的操作无法访问更新的路径变量。
使用$GITHUB_PATHbuild.yml的缩写版本:

name: build Android

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

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: 'Exporting android sdk'    
      run: echo "ANDROID_SDK_ROOT=/usr/lib/android-sdk" >> $GITHUB_ENV
    - name: 'Download and extract android-cli tools'    
      run: |
        curl https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip --output commandlinetools-linux-9123335_latest.zip
        sudo mkdir /usr/lib/android-sdk/cmdline-tools
        sudo unzip -o commandlinetools-linux-9123335_latest.zip -d /usr/lib/android-sdk/cmdline-tools
    - name: 'Exporting android-cli (sdkmanager) ,'    
      run: echo "${{ env.ANDROID_SDK_ROOT }}/cmdline-tools/cmdline-tools/bin" >> $GITHUB_PATH

还要注意,它不是将export添加到ANDROID_SDK_ROOT中,而是添加到$GITHUB_ENV中,并在后续步骤中使用${{ env.ANDROID_SDK_ROOT}}进行访问。

相关问题