jya*_*ski 20 r github shiny github-actions
我最近创建了这篇文章,试图弄清楚如何在 GitHub 操作中引用 GitHub Secrets。我相信我已经解决并弄清楚了这个问题,并且我正在解决另一个问题。
下面是目前工作流程代码的示例,我需要帮助的问题是这Create and populate .Renviron file部分。
on: [push, pull_request]
name: CI-CD
jobs:
CI-CD:
runs-on: ${{ matrix.config.os }}
name: ${{ matrix.config.os }} (${{ matrix.config.r }})
strategy:
# we keep a matrix for convenience, but we would typically just run on one
# single OS and R version, aligned with the target deployment environment
matrix:
config:
- {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"}
env:
# Enable RStudio Package Manager to speed up package installation
RSPM: ${{ matrix.config.rspm }}
# Access token for GitHub
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Setup R
uses: r-lib/actions/setup-r@v1
with:
r-version: ${{ matrix.config.r }}
- name: Install system dependencies
run: |
while read -r cmd
do
eval sudo $cmd
done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))')
- name: Install R dependencies
run: |
remotes::install_deps(dependencies = TRUE)
remotes::install_cran("rcmdcheck")
shell: Rscript {0}
- name: Create and populate .Renviron file
env:
AWS_HOST: ${{ secrets.AWS_HOST }}
AWS_PORT: ${{ secrets.AWS_PORT }}
AWS_PW: ${{ secrets.AWS_PW }}
AWS_USER: ${{ secrets.AWS_USER }}
DBNAME: ${{ secrets.DBNAME }}
run: |
touch .Renviron
echo aws_host="$AWS_HOST" >> .Renviron
echo aws_port="$AWS_PORT" >> .Renviron
echo aws_pw="$AWS_PW" >> .Renviron
echo aws_user="$AWS_USER" >> .Renviron
echo dbname="$DBNAME" >> .Renviron
ls ${{ github.workspace }}
shell: bash
- name: Deploy to shinyapps.io
# continuous deployment only for pushes to the main / master branch
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master'
env:
SHINYAPPS_ACCOUNT: ${{ secrets.SHINYAPPS_ACCOUNT }}
SHINYAPPS_TOKEN: ${{ secrets.SHINYAPPS_TOKEN }}
SHINYAPPS_SECRET: ${{ secrets.SHINYAPPS_SECRET }}
run: Rscript deploy/deploy-shinyapps.R
Run Code Online (Sandbox Code Playgroud)
我相信这个 .Renviron 文件正在创建,但我不知道在哪里,而且它看起来不像是其余文件所在的位置。我尝试了许多文件路径目标,,,,,,,但.Renviron都不起作用。创建文件后,我列出了工作区目录(这是我想要文件所在的位置)的所有内容,但它从未在那里列出。~/.Renviron$github.workspace/.Renviron/home/runner/work/NBA-Dashboard/NBA-Dashboard/.Renviron
我需要创建 .Renvrion 文件并将其与所有其他文件一起列在该特定目录中,因此当我继续下一步并使用 rsconnect 包来构建和部署我的 Shiny 应用程序时,它能够包含要检索的文件当有人使用该应用程序时,环境变量正确。
我想也许 .gitignore 有问题,所以我删除了 .Renviron ?但这并没有解决问题。但是,如果有人有任何想法,我将不胜感激!
Krz*_*tof 16
该文件位于您期望的位置
- name: Create and populate .Renviron file
env:
AWS_HOST: ${{ secrets.AWS_HOST }}
AWS_PORT: ${{ secrets.AWS_PORT }}
AWS_PW: ${{ secrets.AWS_PW }}
AWS_USER: ${{ secrets.AWS_USER }}
DBNAME: ${{ secrets.DBNAME }}
run: |
touch .Renviron
echo aws_host="$AWS_HOST" >> .Renviron
echo aws_port="$AWS_PORT" >> .Renviron
echo aws_pw="$AWS_PW" >> .Renviron
echo aws_user="$AWS_USER" >> .Renviron
echo dbname="$DBNAME" >> .Renviron
echo "cat .Renviron"
cat .Renviron
echo "ls -a ."
ls -a .
echo "ls -a ${{ github.workspace }}"
ls -a ${{ github.workspace }}
shell: bash
Run Code Online (Sandbox Code Playgroud)
您需要运行ls -a才能显示隐藏文件。
Run touch .Renviron
touch .Renviron
echo aws_host="$AWS_HOST" >> .Renviron
echo aws_port="$AWS_PORT" >> .Renviron
echo aws_pw="$AWS_PW" >> .Renviron
echo aws_user="$AWS_USER" >> .Renviron
echo dbname="$DBNAME" >> .Renviron
echo "cat .Renviron"
cat .Renviron
echo "ls -a ."
ls -a .
echo "ls -a /home/runner/work/github-actions-manual/github-actions-manual"
ls -a /home/runner/work/github-actions-manual/github-actions-manual
shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
env:
AWS_HOST:
AWS_PORT:
AWS_PW:
AWS_USER:
DBNAME:
cat .Renviron
aws_host=
aws_port=
aws_pw=
aws_user=
dbname=
ls -a .
.
..
.Renviron
.git
.github
.gitignore
LICENSE
README.md
change-workflow.ps1
commit-new-workflow.ps1
dist
public
test.ps1
test2.ps1
ls -a /home/runner/work/github-actions-manual/github-actions-manual
.
..
.Renviron
.git
.github
.gitignore
LICENSE
README.md
change-workflow.ps1
commit-new-workflow.ps1
dist
public
test.ps1
test2.ps1
Run Code Online (Sandbox Code Playgroud)
这个也可以完成这项工作,并允许在 Github Action 中轻松管理更大的文件:
- name: Create and populate .Renviron file
env:
AWS_HOST: ${{ secrets.AWS_HOST }}
AWS_PORT: ${{ secrets.AWS_PORT }}
AWS_PW: ${{ secrets.AWS_PW }}
AWS_USER: ${{ secrets.AWS_USER }}
DBNAME: ${{ secrets.DBNAME }}
run: |
cat <<EOF > .Renviron
aws_host="$AWS_HOST"
aws_port="$AWS_PORT"
aws_pw="$AWS_PW"
aws_user="$AWS_USER"
dbname="$DBNAME"
EOF
echo "cat .Renviron"
cat .Renviron
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22871 次 |
| 最近记录: |