@@ -11,21 +11,22 @@ jobs:
1111 runs-on : ubuntu-latest
1212 permissions :
1313 contents : read
14+ outputs :
15+ package-tarball-artifact-id-npm : ${{ steps.package-tarball-artifact.outputs.package-tarball-artifact-id-npm }}
16+ package-tarball-artifact-id-pnpm : ${{ steps.package-tarball-artifact.outputs.package-tarball-artifact-id-pnpm }}
17+ package-tarball-artifact-id-pnpm-package-manager : ${{ steps.package-tarball-artifact.outputs.package-tarball-artifact-id-pnpm-package-manager }}
18+ package-tarball-artifact-id-yarn : ${{ steps.package-tarball-artifact.outputs.package-tarball-artifact-id-yarn }}
1419 strategy :
1520 matrix :
1621 include :
1722 - working-directory : tests/npm
1823 artifact-suffix : npm
19- install-command : npm install --force --legacy-peer-deps --no-audit --no-fund --loglevel=warn
2024 - working-directory : tests/pnpm
2125 artifact-suffix : pnpm
22- install-command : pnpm install
2326 - working-directory : tests/pnpm-package-manager
2427 artifact-suffix : pnpm-package-manager
25- install-command : pnpm install
2628 - working-directory : tests/yarn
2729 artifact-suffix : yarn
28- install-command : yarn add
2930 steps :
3031 - name : Arrange - Checkout sources
3132 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3536 uses : ./actions/package
3637 with :
3738 working-directory : ${{ matrix.working-directory }}
38- artifact-name : package-tarball-${{ matrix.artifact-suffix }}
39+ artifact-name : package-tarball-${{ matrix.artifact-suffix }}-${{ github.run_id }}-${{ github.run_attempt }}
3940
4041 - name : Assert - Check "package" outputs
4142 env :
5758 exit 1
5859 fi
5960
61+ - id : package-tarball-artifact
62+ name : Arrange - Export package tarball artifact ID
63+ env :
64+ ARTIFACT_SUFFIX : ${{ matrix.artifact-suffix }}
65+ PACKAGE_TARBALL_ARTIFACT_ID : ${{ steps.act-package.outputs.package-tarball-artifact-id }}
66+ run : echo "package-tarball-artifact-id-${ARTIFACT_SUFFIX}=${PACKAGE_TARBALL_ARTIFACT_ID}" >> "$GITHUB_OUTPUT"
67+
68+ assert-package-tarball :
69+ name : Assert package tarball (${{ matrix.working-directory }})
70+ needs : test
71+ runs-on : ubuntu-latest
72+ permissions :
73+ actions : read
74+ contents : read
75+ strategy :
76+ matrix :
77+ include :
78+ - working-directory : tests/npm
79+ artifact-suffix : npm
80+ install-command : npm install --force --legacy-peer-deps --no-audit --no-fund --loglevel=warn
81+ package-tarball-artifact-id : ${{ needs.test.outputs['package-tarball-artifact-id-npm'] }}
82+ - working-directory : tests/pnpm
83+ artifact-suffix : pnpm
84+ install-command : pnpm install
85+ package-tarball-artifact-id : ${{ needs.test.outputs['package-tarball-artifact-id-pnpm'] }}
86+ - working-directory : tests/pnpm-package-manager
87+ artifact-suffix : pnpm-package-manager
88+ install-command : pnpm install
89+ package-tarball-artifact-id : ${{ needs.test.outputs['package-tarball-artifact-id-pnpm-package-manager'] }}
90+ - working-directory : tests/yarn
91+ artifact-suffix : yarn
92+ install-command : yarn add
93+ package-tarball-artifact-id : ${{ needs.test.outputs['package-tarball-artifact-id-yarn'] }}
94+ steps :
95+ - name : Arrange - Checkout sources
96+ uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
97+
6098 - name : Arrange - Configure Node.js version
6199 run : echo "lts/*" > .nvmrc
62100 working-directory : ${{ matrix.working-directory }}
@@ -67,22 +105,30 @@ jobs:
67105 with :
68106 working-directory : ${{ matrix.working-directory }}
69107
108+ - name : Assert - Check package tarball artifact ID
109+ env :
110+ PACKAGE_TARBALL_ARTIFACT_ID : ${{ matrix.package-tarball-artifact-id }}
111+ run : |
112+ if [ -z "$PACKAGE_TARBALL_ARTIFACT_ID" ]; then
113+ echo "package-tarball-artifact-id output is empty"
114+ exit 1
115+ fi
116+
70117 - name : Assert - Download package tarball artifact by ID
71118 uses : actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
72119 with :
73- artifact-ids : ${{ steps.act-package.outputs .package-tarball-artifact-id }}
120+ artifact-ids : ${{ matrix .package-tarball-artifact-id }}
74121 path : ${{ runner.temp }}
75122 skip-decompress : true
123+ github-token : ${{ github.token }}
76124
77125 - name : Assert - Check downloaded package tarball artifact
78126 env :
79- TARBALL_PATH : ${{ steps.act-package.outputs.package-tarball-path }}
127+ TARBALL_NAME : package-tarball- ${{ matrix.artifact-suffix }}-${{ github.run_id }}-${{ github.run_attempt }}.tgz
80128 INSTALL_COMMAND : ${{ matrix.install-command }}
81129 working-directory : ${{ runner.temp }}
82130 run : |
83- tarball_name="$(basename "$TARBALL_PATH")"
84-
85- if [ ! -f "./$tarball_name" ]; then
131+ if [ ! -f "./$TARBALL_NAME" ]; then
86132 echo "Downloaded package tarball artifact does not exist"
87133 exit 1
88134 fi
93139 fi
94140
95141 # Install the tarball to verify it's a valid npm package
96- $INSTALL_COMMAND "./$tarball_name "
142+ $INSTALL_COMMAND "./$TARBALL_NAME "
0 commit comments