Github 操作是否可以上传构建工件以在发布分支上提交,然后让另一个工作流程下载并使用该工件?
name: Deploy release to UAT & archive artifact
on:
release:
types: [published]
jobs:
package:
name: package and archive
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '12'
- name: serverless package
uses: serverless/github-action@master
with:
args: package --stage=prod
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: .serverless
asset_name: release-asset-${{ github.event.release.name }}.zip
asset_content_type: application/zip
- name: Upload Artifact
uses: actions/upload-artifact@v2
with:
name: release-artifact-${{ github.event.release.name }}
path: .serverless
Run Code Online (Sandbox Code Playgroud)
...但是如何下载资产/工件?我认为up/download-artifact只能在同一工作流程中使用,并且似乎没有下载发布资产的操作。
name: Deploy to production
on:
workflow_dispatch:
inputs:
release:
description: Name of release to deploy
required: true
default: v1.0.0
jobs:
deploy:
name: deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '12'
- run: npm ci --only=prod
- name: Download the release artifact
uses: actions/download-artifact@v2
with:
name: release-${{ github.event.inputs.release }}
path: .serverless
- name: serverless deploy
uses: serverless/github-action@master
with:
args: deploy --stage=prod --package=.serverless
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
Run Code Online (Sandbox Code Playgroud)
我的一位队友做到了这一点:
- id: download-release-asset
name: Download release asset
uses: dsaltares/fetch-gh-release-asset@master
with:
version: tags/${{ env.RELEASE }}
file: myproject-${{ env.RELEASE }}.tar.gz
target: release.tar.gz
token: ${{ secrets.DEPLOY_TOKEN }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27398 次 |
| 最近记录: |