#github-actions
Вопрос:
Возможно ли, чтобы действия Github загружали артефакт сборки для фиксации в ветке выпуска, а затем для другого рабочего процесса загружали и использовали этот артефакт?
name: Deploy release to UAT amp; 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
… но как вы загружаете ресурс / артефакт? Я думаю 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 }}
Ответ №1:
Вы можете использовать download-workflow-artifact
действие.
Ответ №2:
Один из моих товарищей по команде получил эту работу:
- 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 }}
Комментарии:
1. Обратите внимание, что это работает только в Linux, а не в Windows.