|
43 | 43 | outputs:
|
44 | 44 | packages-version: ${{ steps.versions.outputs.packages }}
|
45 | 45 | config-version: ${{ steps.versions.outputs.config }}
|
| 46 | + build-db-packages-versions: ${{ steps.}} |
46 | 47 | steps:
|
47 | 48 | # Deployment
|
48 | 49 | - uses: actions/checkout@v4
|
@@ -114,20 +115,40 @@ jobs:
|
114 | 115 | spack env activate ${{ inputs.env-name }}
|
115 | 116 | spack --debug install --fresh ${{ vars.SPACK_INSTALL_PARALLEL_JOBS }} || exit $?
|
116 | 117 | spack module tcl refresh -y
|
| 118 | + EOT |
117 | 119 |
|
118 |
| - # Obtain metadata |
119 |
| - spack find --paths > ${{ steps.path.outputs.spack }}/var/spack/environments/${{ inputs.env-name }}/spack.location |
120 |
| - spack find --format '{hash} {prefix}' | jq --raw-input --null-input '[inputs | split(" ") | {(.[0]): (.[1])}] | add' > ${{ steps.path.outputs.spack }}/var/spack/environments/${{ inputs.env-name }}/spack.location.json |
| 120 | + - name: Get metadata from ${{ inputs.deployment-environment }} |
| 121 | + env: |
| 122 | + SPACK_ENV_PATH: ${{ steps.path.outputs.spack }}/var/spack/environments/${{ inputs.env-name }} |
| 123 | + run: | |
| 124 | + ssh ${{ secrets.USER}}@${{ secrets.HOST }} -i ${{ steps.ssh.outputs.private-key-path }} /bin/bash <<'EOT' |
| 125 | + spack find --paths > ${{ env.SPACK_ENV_PATH }}/spack.location |
| 126 | + spack find --format '{hash} {prefix}' | jq --raw-input --null-input '[inputs | split(" ") | {(.[0]): (.[1])}] | add' > ${{ env.SPACK_ENV_PATH }}/spack.location.json |
| 127 | +
|
| 128 | + # Get the repos associated with the packages for the build database |
| 129 | + jq -n '{}' > ${{ env.SPACK_ENV_PATH }}/build-db-pkgs.json |
| 130 | + for pkg in ${{ vars.BUILD_DB_PACKAGES }}; do |
| 131 | + # TODO: Is there a way to get the git attribute without concretizing? |
| 132 | + pkg_repo=$(spack python -c "import spack.spec; print(spack.spec.Spec('$pkg').concretized().package.git)") |
| 133 | + jq \ |
| 134 | + --arg p "$pkg" \ |
| 135 | + --arg r "$pkg_repo" \ |
| 136 | + '. += {($p): ($r)}' \ |
| 137 | + ${{ env.SPACK_ENV_PATH }}/build-db-pkgs.json > ${{ env.SPACK_ENV_PATH }}/build-db-pkgs.json.tmp |
| 138 | + mv -f ${{ env.SPACK_ENV_PATH }}/build-db-pkgs.json.tmp ${{ env.SPACK_ENV_PATH }}/build-db-pkgs.json |
| 139 | + done |
121 | 140 |
|
122 | 141 | spack env deactivate
|
123 |
| - echo "$(date): Deployed ${{ inputs.model }} ${{ inputs.version }} with spack-packages ${{ steps.versions.outputs.packages }}, spack-config ${{ steps.versions.outputs.config }}" >> ${{ steps.path.outputs.root }}/release.log |
124 | 142 | EOT
|
125 | 143 |
|
126 | 144 | # Release
|
127 | 145 | - name: Get Release Metadata
|
| 146 | + env: |
| 147 | + # TODO: Can we put both envs above in a $GITHUB_ENV file instead? |
| 148 | + SPACK_ENV_PATH: ${{ steps.path.outputs.spack }}/var/spack/environments/${{ inputs.env-name }} |
128 | 149 | run: |
|
129 | 150 | rsync -e 'ssh -i ${{ steps.ssh.outputs.private-key-path }}' \
|
130 |
| - '${{ secrets.USER}}@${{ secrets.HOST_DATA }}:${{ steps.path.outputs.spack }}/var/spack/environments/${{ inputs.env-name }}/spack.*' \ |
| 151 | + '${{ secrets.USER}}@${{ secrets.HOST_DATA }}:${{ env.SPACK_ENV_PATH }}/spack.*' \ |
131 | 152 | ./${{ inputs.env-name }}
|
132 | 153 |
|
133 | 154 | - name: Upload Metadata Artifact
|
|
0 commit comments