github-action-build-chain icon indicating copy to clipboard operation
github-action-build-chain copied to clipboard

Cannot archive artifact

Open ppawlowski opened this issue 1 year ago • 4 comments

Although I am confident about the approach, the tool is unable to archive the artefact I expect (saved docker container image).

The definition file: https://github.com/ppawlowski/driver-localfs/blob/feat-3/.github/dependency-tree.yml The workflow execution (action debug enabled): https://github.com/ppawlowski/driver-localfs/actions/runs/10496718422/job/29077985253#step:3:404 The file is definitely there, yet build-chain is not capable of archiving it as a workflow artefact.

What am I doing wrong? Thank you in advance for pointing the mistake.

ppawlowski avatar Aug 21 '24 20:08 ppawlowski

According to the logs

 [INFO] No artifacts to archive
  • the definition file seems to be fine. My congrats to you :heart:
  • the file is there according to the ´ls´ command

what's weird FMPOV?

the rights for the k8s-forge.tar file maybe does not allow to the job/node user to access the file, see

2024-08-21T20:09:58.1005856Z -rw-------    1 runner docker 555227136 Aug 21 20:09 k8s-forge.tar

What would I do?

I would do two things:

  • to execute whoami command from the definition-file in order to assure what's the user running node (build-chain basically)
  • to execute chmod 344 k8s-forge.tar (rw-r--r-- file permission)

Please keep me posted about the issue. We can even arrange 1:1 online meeting in case you don't find the root of the problem.

Well done with your definition file BTW

Ginxo avatar Aug 22 '24 06:08 Ginxo

The user who executes the workflow has proper permissions to the file which supposed to be archived. Unfortunately, still no artifact is published. Furthermore, I've added a full path to the file: https://github.com/ppawlowski/driver-localfs/blob/feat-3/.github/dependency-tree.yml#L47 - still no luck.

ppawlowski avatar Aug 22 '24 08:08 ppawlowski

did you try local execution, see Local Execution like

build-chain build branch -f https://raw.githubusercontent.com/ppawlowski/driver-localfs/feat-3/.github/dependency-tree.yml -p=ppawlowski/driver-localfs -b=main

The idea behind the test is to check whether the file is really there after the execution (no archive-artifact step will be performed for a local execution, but at least you will check whether something is interfering)

Replace main by the branch you want to check

I'm guessing your tests are about branch case, but please adapt if needed for cross_pr or full_downstream

Ginxo avatar Aug 22 '24 10:08 Ginxo

Running it locally proves, that the file is created. Furthermore, I've added workflow step within the same job which uploads the file as an artefact and it succeeded while build-chain action still claims, that there are no artefacts to upload. The dependency file used for linked GHA run: https://github.com/ppawlowski/driver-localfs/blob/6f934bf09ffe6e942f69859a9233b1fc66cdf24d/.github/dependency-tree.yml

At this point, I achieved what I wanted. However, there is definitely something wrong with artefacts uploading within the build-chain.

ppawlowski avatar Aug 23 '24 09:08 ppawlowski