我试图使用github动作的macos运行程序,因为它有更多的内存。然而,我在确定日期方面遇到了困难。
我需要一份表格的日期,例如20220731。此代码可以很好地工作在本地:
export RUNDATEOSX=$(date -d "-2 days" +%Y%m%d)
[arch@e28c15002791 OSX-KVM]$ echo $RUNDATEOSX
20220731但是在macos跑步者身上:
试过:
jobs:
get-bq-data:
runs-on: macos-11
name: Get GA4 data from BQ
steps:
- name: Set env
run: export RUNDATEOSX=$(date -d "-2 days" +%Y%m%d) >> $GITHUB_ENV
- name: echo RUNDATEOSX
run: echo $RUNDATEOSX

它是空的,$RUNDATEOSX不在那里。
如何在mac-os运行程序上设置env var?
发布于 2022-08-03 00:40:07
可能的第一个问题是,您通常不需要将export与Github操作一起使用。
要向GITHUB_ENV添加或设置变量,根据Github文件,您需要使用以下语法:
echo "{environment_variable_name}={value}" >> $GITHUB_ENV
另一个问题可能与您在本地用于测试date命令的macOs版本有关。
此命令行$(date -d "-2 days" +%Y%m%d)还在本地(使用MacOS12.4)返回与macos-latest运行程序相同的错误:
date: illegal option -- d
usage: date [-jnRu] [-r seconds|file] [-v[+|-]val[ymwdHMS]]
[-I[date | hours | minutes | seconds]]
[-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]但是,使用另一个命令行:$(date -j -v-2d +%Y%m%d),,我得到了预期的结果。
因此,用于获取所需内容的工作流如下所示:
jobs:
job1:
runs-on: ubuntu-latest
steps:
- name: Set variable
run: |
RUNDATEOSX=$(date -j -v-2d +%Y%m%d)
echo "RUNDATEOSX=$RUNDATEOSX" >> $GITHUB_ENV
- name: Print variable
run: |
echo "RUNDATEOSX:" ${{ env.RUNDATEOSX }} # First option
echo "RUNDATEOSX:" $RUNDATEOSX # Second option注意:这是我用来检查的https://github.com/GuillaumeFalourd/poc-github-actions/blob/main/.github/workflows/workflow-tester49.yml和https://github.com/GuillaumeFalourd/poc-github-actions/runs/7642843346?check_suite_focus=true,如果您想看一下的话。
https://stackoverflow.com/questions/73213189
复制相似问题