Skip to content

Merge pull request #82 from awslabs/sjg/json-enum-parsing #88

Merge pull request #82 from awslabs/sjg/json-enum-parsing

Merge pull request #82 from awslabs/sjg/json-enum-parsing #88

Workflow file for this run

name: Singularity
on:
push:
branches:
- main
tags: '*'
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
CONTAINER_NAME: palace.sif
IMAGE_NAME: ghcr.io/${{ github.repository }}
jobs:
build-and-test-singularity:
runs-on: palace_ubuntu-latest_16-core
steps:
- uses: actions/checkout@v3
- uses: singularityhub/install-singularity@main
- name: Build container
run: |
sudo singularity build --bind ${{ github.workspace }}:/opt/palace-src:ro \
$CONTAINER_NAME singularity/singularity.def
- name: Run tests
env:
NUM_PROC_TEST_MAX: '8'
run: |
# Configure environment
export NUM_PROC_TEST=$(nproc 2> /dev/null || sysctl -n hw.ncpu)
if [[ "$NUM_PROC_TEST" -gt "$NUM_PROC_TEST_MAX" ]]; then
NUM_PROC_TEST=$NUM_PROC_TEST_MAX
fi
export PALACE_TEST="singularity run $CONTAINER_NAME"
# Run tests
julia --project=test -e 'using Pkg; Pkg.instantiate()'
julia --project=test --color=yes test/runtests.jl
- uses: docker/metadata-action@v4
if: github.event_name != 'pull_request'
id: metadata
with:
images: ${{ env.IMAGE_NAME }}
- name: Push container
if: github.event_name != 'pull_request'
shell: bash
run: |
# Push multiple tags (separated by newlines)
echo "Container tags: ${{ steps.metadata.outputs.tags }}"
echo ${{ secrets.GITHUB_TOKEN }} | singularity remote login -u ${{ github.repository_owner }} --password-stdin oras://ghcr.io
while IFS= read -r remote; do
singularity push -U $CONTAINER_NAME "oras://${remote}"
done <<< "${{ steps.metadata.outputs.tags }}"
- uses: actions/upload-artifact@v3
with:
name: ${{ env.CONTAINER_NAME }}
path: ${{ env.CONTAINER_NAME }}
retention-days: 1