Artifacts
Gerenciamento de artifacts (opens in a new tab) do GitHub Actions.
Este comando geralmente é usado na etapa de publicação, antes do comando npm publish e após a etapa de Download artifacts.
Flags List
| Flag | Tipo/Valor padrão | Descrição |
|---|---|---|
-d ,--dir | String/artifacts | O diretório de origem que contém todos os resultados dos artifacts gerados na fase de compilação. |
--dist | String/npm | O diretório de distribuição para onde o complemento nativo será copiado. |
Como isso funciona
Suponha que você tenha um projeto que cria um complemento(addon) nativo para estas plataformas:
x86_64-apple-darwinx86_64-pc-windows-msvcx86_64-unknown-linux-gnuaarch64-apple-darwinaarch64-linux-androidaarch64-unknown-linux-gnuaarch64-unknown-linux-muslaarch64-pc-windows-msvcarmv7-unknown-linux-gnueabihfarm-linux-androideabix86_64-unknown-linux-muslx86_64-unknown-freebsdi686-pc-windows-msvc
E você pode baixar esses artefatos através de actions/download-artifact:
- name: Download all artifacts
uses: actions/download-artifact@v2
with:
path: artifactsAgora a estrutura de diretórios ficará assim:
.
├── artifacts
| ├── bindings-x86_64-apple-darwin
| │ └── blake.darwin-x64.node
| ├── bindings-x86_64-pc-windows-msvc
| │ └── blake.win32-x64.node
| ├── bindings-x86_64-unknown-linux-gnu
| │ └── blake.linux-x64-gnu.node
| ├── bindings-aarch64-apple-darwin
| │ └── blake.darwin-arm64.node
| ├── bindings-aarch64-linux-android
| │ └── blake.android-arm64.node
| ├── bindings-aarch64-unknown-linux-gnu
| │ └── blake.linux-arm64-gnu.node
| ├── bindings-aarch64-unknown-linux-musl
| │ └── blake.linux-arm64-musl.node
| ├── bindings-aarch64-pc-windows-msvc
| │ └── blake.win32-arm64-msvc.node
| ├── bindings-armv7-unknown-linux-gnueabihf
| │ └── blake.linux-arm-gnueabihf.node
| ├── bindings-arm-linux-androideabi
| │ └── blake.android-arm-eabi.node
| ├── bindings-x86_64-unknown-linux-musl
| │ └── blake.linux-x64-musl.node
| ├── bindings-x86_64-unknown-freebsd
| │ └── blake.freebsd-x64.node
| └── bindings-i686-pc-windows-msvc
| └── blake.win32-ia32-msvc.node
├── npm
│ ├── android-arm-eabi
│ │ ├── README.md
│ │ └── package.json
│ ├── android-arm64
│ │ ├── README.md
│ │ └── package.json
│ ├── darwin-arm64
│ │ ├── README.md
│ │ └── package.json
│ ├── darwin-x64
│ │ ├── README.md
│ │ └── package.json
│ ├── freebsd-x64
│ │ ├── README.md
│ │ └── package.json
│ ├── linux-arm-gnueabihf
│ │ ├── README.md
│ │ └── package.json
│ ├── linux-arm64-gnu
│ │ ├── README.md
│ │ └── package.json
│ ├── linux-arm64-musl
│ │ ├── README.md
│ │ └── package.json
│ ├── linux-x64-gnu
│ │ ├── README.md
│ │ └── package.json
│ ├── linux-x64-musl
│ │ ├── README.md
│ │ └── package.json
│ ├── win32-arm64-msvc
│ │ ├── README.md
│ │ └── package.json
│ ├── win32-ia32-msvc
│ │ ├── README.md
│ │ └── package.json
│ └── win32-x64-msvc
│ ├── README.md
│ └── package.jsonComo você pode ver, precisamos copiar todos os arquivos .node para o diretório npm para que possamos publicá-los por meio do comando napi prepublish.
O comando napi artifacts fará esse trabalho para você. Suponha que as flags -d e --dist tenham o valor padrão, e a estrutura de diretórios seja a mesma que abaixo. Após a execução do comando napi artifacts, a estrutura de diretórios se tornará:
.
├── artifacts
├── npm
│ ├── android-arm-eabi
│ │ ├── README.md
| | ├── blake.android-arm-eabi.node
│ │ └── package.json
│ ├── android-arm64
│ │ ├── README.md
| | ├── blake.android-arm64.node
│ │ └── package.json
│ ├── darwin-arm64
│ │ ├── README.md
| | ├── blake.darwin-arm64.node
│ │ └── package.json
│ ├── darwin-x64
│ │ ├── README.md
| | ├── blake.darwin-x64.node
│ │ └── package.json
│ ├── freebsd-x64
│ │ ├── README.md
| | ├── blake.freebsd-x64.node
│ │ └── package.json
│ ├── linux-arm-gnueabihf
│ │ ├── README.md
| | ├── blake.linux-arm-gnueabihf.node
│ │ └── package.json
│ ├── linux-arm64-gnu
│ │ ├── README.md
| | ├── blake.linux-arm64-gnu.node
│ │ └── package.json
│ ├── linux-arm64-musl
│ │ ├── README.md
| | ├── blake.linux-arm64-musl.node
│ │ └── package.json
│ ├── linux-x64-gnu
│ │ ├── README.md
| | ├── blake.linux-x64-gnu.node
│ │ └── package.json
│ ├── linux-x64-musl
│ │ ├── README.md
| | ├── blake.linux-x64-musl.node
│ │ └── package.json
│ ├── win32-arm64-msvc
│ │ ├── README.md
| | ├── blake.win32-arm64-msvc.node
│ │ └── package.json
│ ├── win32-ia32-msvc
│ │ ├── README.md
| | ├── blake.win32-ia32-msvc.node
│ │ └── package.json
│ └── win32-x64-msvc
│ ├── README.md
| ├── blake.win32-x64-msvc.node
│ └── package.json