diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c313930..587afc3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,8 +2,8 @@ # https://github.com/FNNDSC/cookiecutter-chrisapp/wiki/Automatic-Builds # # - targeted platforms: x86_64, PowerPC64, ARM64 -# - master is built as fnndsc/pl-multipass:latest -# - tagged commits are built as fnndsc/pl-multipass: +# - master is built as fnndsc/pl-markimg:latest +# - tagged commits are built as fnndsc/pl-markimg: # - tagged commits are also uploaded to chrisstore.co # # In order to use this workflow, see @@ -13,20 +13,16 @@ name: ci on: push: - branches: [ master ] + # we have to guess what the name of the default branch is + branches: [ master, main, trunk ] tags: [ '**' ] pull_request: - branches: [ master ] - release: - types: [ created ] - + branches: [ master, main, trunk ] jobs: test: - runs-on: ubuntu-20.04 - # testing is disabled - # delete the line below to enable testing if: false + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v2 - name: build @@ -36,7 +32,7 @@ jobs: publish: if: github.event_name == 'push' || github.event_name == 'release' - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 # we want to both push the build to DockerHub, but also # keep a local copy so that we can run @@ -67,8 +63,8 @@ jobs: tag="${git_tag:-latest}" dock_image=$repo:$tag echo $dock_image - echo "::set-output name=repo::$repo" echo "::set-output name=dock_image::$dock_image" + echo "::set-output name=repo::$repo" - uses: actions/checkout@v2 @@ -93,9 +89,9 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - + - name: Login to GitHub Container Registry - uses: docker/login-action@v1 + uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -124,11 +120,16 @@ jobs: docker pull localhost:5000/$dock_image docker tag localhost:5000/$dock_image $dock_image script=$(docker inspect --format '{{ (index .Config.Cmd 0) }}' $dock_image) + docker run --rm $dock_image $script --json \ + | jq '. += {"name":"pl-multipass", "dock_image": "'$dock_image'", "public_repo": "'${{ github.server_url }}/${{ github.repository }}'" }' \ + > /tmp/description.json json="$(docker run --rm $dock_image $script --json)" - jq <<< "$json" # pretty print in log + # Escape single quotes + json_escaped=$(echo "$json" | sed "s/'/\\'/g") - echo "::set-output name=json::$json" - echo "::set-output name=title::$(jq -r '.title' <<< "$json")" + jq <<< "$json" # pretty print in log + echo "json=$json_escaped" >> $GITHUB_OUTPUT + echo "title=$(jq -r '.title' <<< "$json")" >> $GITHUB_OUTPUT - name: Update DockerHub description uses: peter-evans/dockerhub-description@v2 @@ -140,27 +141,13 @@ jobs: readme-filepath: ./README.rst repository: ${{ steps.determine.outputs.repo }} - - name: Upload to ChRIS Store - if: "!endsWith(steps.determine.outputs.dock_image, ':latest')" - run: | - repo=${{ steps.determine.outputs.repo }} - dock_image=${{ steps.determine.outputs.dock_image }} - descriptor_file=$(mktemp --suffix .json) - cat > $descriptor_file <<< '${{ steps.pluginmeta.outputs.json }}' - res=$( - curl -s -u "${{ secrets.CHRIS_STORE_USER }}" "https://chrisstore.co/api/v1/plugins/" \ - -F "name=$(sed 's/^.*\///' <<< $repo)" \ - -F "dock_image=$dock_image" \ - -F "descriptor_file=@$descriptor_file" \ - -F "public_repo=https://github.com/${{ github.repository }}" - ) - success=$? - if [ "$success" = "0" ]; then - href="$(jq -r '.collection.items[0].href' <<< "$res")" - echo $href - echo "::set-output name=pluginurl::$href" - else - echo "::error ::Failed upload to ChRIS Store" - echo "$res" - exit $success - fi + - name: Upload ChRIS Plugin + id: upload + if: github.ref_type == 'tag' + uses: FNNDSC/upload-chris-plugin@main + with: + description_file: /tmp/description.json + username: ${{ secrets.CHRISPROJECT_USERNAME }} + password: ${{ secrets.CHRISPROJECT_PASSWORD }} + chris_url: https://cube.chrisproject.org/api/v1/ + compute_names: NERC \ No newline at end of file diff --git a/setup.py b/setup.py index 2f512c5..d23efae 100755 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ setup( name = 'multipass', - version = '1.3.5', + version = '1.3.6', description = 'An app to make multiple passes or runs of a certain Python Utility with different args', long_description = readme, author = 'FNNDSC/ArushiVyas',