84062


pushした際に、Cのソースコードをコンパイルして、リリースにアップロードしたいのですが、エラーが出てしまいます。どのようにすればよいでしょうか？

[code]

    エラー内容
    Error: Error: Input required and not supplied: upload_url
    
[/code]

[code]

    // ソースコード Sample.c
    #include <stdio.h>
    
    int main()
    {
      printf("Hello World\n");
    }
    
[/code]

[code]

    # release.yml
    name: Compile & Upload Release
    
    on: [push]
    
    jobs:
      build:
    
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v2
          - name: Build
            run: gcc Sample.c -o Sample
          - name: Upload assets to the GitHub release draft
            uses: shogo82148/actions-upload-release-asset@v1
            with:
              upload_url: ${{ github.event.inputs.upload_url }}
              asset_path: ./Sample
    
[/code]


CC BY-SA 4.0
2021-12-09T09:59:00.857
84041
2021-12-11T06:00:36.560
2021-12-09T10:04:31.210
40856
40856
question
github github-actions
GitHub Actionsを用いて、コンパイルして、リリースにアップロードしたい


`github.event.inputs`
コンテキストを利用しているので、[ワークフローをマニュアル実行](https://docs.github.com/ja/actions/learn-
github-actions/events-that-trigger-workflows#workflow_dispatch)
する前提の設定を参考にしているのではないでしょうか。

[code]

    # release.yml
    name: Compile & Upload Release
    
    on:
      workflow_dispatch:
        inputs:
          upload_url:
            description: "Assets upload URL"
            required: true
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v2
          - name: Build
            run: gcc Sample.c -o Sample
          - name: Upload assets to the GitHub release draft
            uses: shogo82148/actions-upload-release-asset@v1
            with:
              upload_url: ${{ github.event.inputs.upload_url }}
              asset_path: ./Sample
    
[/code]

とすると、 Actions ページに [Run workflow
ボタン](https://docs.github.com/ja/actions/managing-workflow-runs/manually-
running-a-workflow)が表れます。

[List Releases API](https://docs.github.com/en/rest/reference/repos#list-
releases) でアセットアップロードURL(`upload_url`)がわかるので、このURLを Run workflow ボタンの "Assets
upload URL" 値として設定すればアップロードできます。

動作確認用に作成したリポジトリがあるので参考になれば。

  * <https://github.com/yukihane/jaso84041>
  * <https://api.github.com/repos/yukihane/jaso84041/releases>
    * Assets upload URL として指定するのはこの場合 `https://uploads.github.com/repos/yukihane/jaso84041/releases/55095380/assets`

* * *

[作者のblog](https://shogo82148.github.io/blog/2020/12/03/github-actions-
in-2020/),[公式のREADME](https://github.com/shogo82148/actions-upload-release-
asset#readme)には、別のイベントでのアセットアップロード例があります:

  * リリース作成時にアセットアップロード
  * 特定の命名パターンのタグ作成時にリリース作成を伴ってアセットアップロード

これらの方が実際に行いたいことに近い、ということもあるかもしれません。


CC BY-SA 4.0
2021-12-11T06:00:36.560
84062
2021-12-11T06:00:36.560
2808
84041
answer