Skip to content

Apps 2476 head job on demand attr (#126) #202

Apps 2476 head job on demand attr (#126)

Apps 2476 head job on demand attr (#126) #202

Workflow file for this run

name: Publish Snapshot Workflow
on:
push:
branches:
- develop
workflow_dispatch:
permissions:
contents: read
packages: write
jobs:
publish:
name: Publish Snapshot
runs-on: ubuntu-20.04
steps:
- name: Git Checkout
uses: actions/checkout@v2
- name: Install Java
uses: actions/setup-java@v1
with:
java-version: 11
- name: Install other dependencies
run: |
sudo apt update -y && sudo apt install -y jq
- name: Delete existing snapshot versions
id: versions
run: |
set -x
common_version=`grep -o -P "\d+\.\d+\.\d+-SNAPSHOT" ./common/src/main/resources/application.conf || true`
if [ -z "$common_version" ]; then
echo "dxCommon version does not end in '-SNAPSHOT'; only snapshot versions are allowed in the develop branch"
exit 1
fi
common_query="{\"query\": \"query { repository(owner:\\\"dnanexus\\\", name:\\\"dxScala\\\") { packages(names:[\\\"com.dnanexus.dxcommon\\\"], first:1) { nodes { version(version:\\\"${common_version}\\\") { id } } } } }\" }"
common_version_json=`curl \
-X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer ${{ secrets.GITHUB_TOKEN }}" \
-d "$common_query" \
https://api.github.com/graphql`
common_version_id=`echo $common_version_json | jq -r ".data.repository.packages.nodes[0].version.id"`
if [ "$common_version_id" != "null" ]; then
common_delete_query="{\"query\": \"mutation { deletePackageVersion(input:{packageVersionId:\\\"${common_version_id}\\\"}) { success }}\"}"
common_delete_json=`curl -X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer ${{ secrets.GITHUB_TOKEN }}" \
-d "$common_delete_query" \
https://api.github.com/graphql`
common_result=`echo $common_delete_json | jq ".data.deletePackageVersion.success"`
if [ "$common_result" != "true" ]; then
echo "could not delete dxCommon version ${common_version} with package ID ${common_version_id}"
echo "$common_delete_json"
exit 1
fi
fi
api_version=`grep -o -P "\d+\.\d+\.\d+-SNAPSHOT" ./api/src/main/resources/application.conf || true`
if [ -z "$api_version" ]; then
echo "dxApi version does not end in '-SNAPSHOT'; only snapshot versions are allowed in the develop branch"
exit 1
fi
api_query="{\"query\": \"query { repository(owner:\\\"dnanexus\\\", name:\\\"dxScala\\\") { packages(names:[\\\"com.dnanexus.dxapi\\\"], first:1) { nodes { version(version:\\\"${api_version}\\\") { id } } } } }\" }"
api_version_json=`curl \
-X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer ${{ secrets.GITHUB_TOKEN }}" \
-d "$api_query" \
https://api.github.com/graphql`
api_version_id=`echo $api_version_json | jq -r ".data.repository.packages.nodes[0].version.id"`
if [ "$api_version_id" != "null" ]; then
api_delete_query="{\"query\": \"mutation { deletePackageVersion(input:{packageVersionId:\\\"${api_version_id}\\\"}) { success }}\"}"
api_delete_json=`curl -X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer ${{ secrets.GITHUB_TOKEN }}" \
-d "$api_delete_query" \
https://api.github.com/graphql`
api_result=`echo $api_delete_json | jq ".data.deletePackageVersion.success"`
if [ "$api_result" != "true" ]; then
echo "could not delete dxApi version ${api_version} with package ID ${api_version_id}"
echo "$api_delete_json"
exit 1
fi
fi
protocols_version=`grep -o -P "\d+\.\d+\.\d+-SNAPSHOT" ./protocols/src/main/resources/application.conf || true`
if [ -z "$protocols_version" ]; then
echo "dxFileAccessProtocols version does not end in '-SNAPSHOT'; only snapshot versions are allowed in the develop branch"
exit 1
fi
protocols_query="{\"query\": \"query { repository(owner:\\\"dnanexus\\\", name:\\\"dxScala\\\") { packages(names:[\\\"com.dnanexus.dxfileaccessprotocols\\\"], first:1) { nodes { version(version:\\\"${protocols_version}\\\") { id } } } } }\" }"
protocols_version_json=`curl \
-X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer ${{ secrets.GITHUB_TOKEN }}" \
-d "$protocols_query" \
https://api.github.com/graphql`
protocols_version_id=`echo $protocols_version_json | jq -r ".data.repository.packages.nodes[0].version.id"`
if [ "$protocols_version_id" != "null" ]; then
protocols_delete_query="{\"query\": \"mutation { deletePackageVersion(input:{packageVersionId:\\\"${protocols_version_id}\\\"}) { success }}\"}"
protocols_delete_json=`curl -X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer ${{ secrets.GITHUB_TOKEN }}" \
-d "$protocols_delete_query" \
https://api.github.com/graphql`
protocols_result=`echo $protocols_delete_json | jq ".data.deletePackageVersion.success"`
if [ "$protocols_result" != "true" ]; then
echo "could not delete dxFileAccessProtocols version ${protocols_version} with package ID ${protocols_version_id}"
echo "$protocols_delete_json"
exit 1
fi
fi
yaml_version=`grep -o -P "\d+\.\d+\.\d+-SNAPSHOT" ./yaml/src/main/resources/application.conf || true`
if [ -z "$yaml_version" ]; then
echo "dxYaml version does not end in '-SNAPSHOT'; only snapshot versions are allowed in the develop branch"
exit 1
fi
yaml_query="{\"query\": \"query { repository(owner:\\\"dnanexus\\\", name:\\\"dxScala\\\") { packages(names:[\\\"com.dnanexus.dxyaml\\\"], first:1) { nodes { version(version:\\\"${yaml_version}\\\") { id } } } } }\" }"
yaml_version_json=`curl \
-X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer ${{ secrets.GITHUB_TOKEN }}" \
-d "$yaml_query" \
https://api.github.com/graphql`
yaml_version_id=`echo $yaml_version_json | jq -r ".data.repository.packages.nodes[0].version.id"`
if [ "$yaml_version_id" != "null" ]; then
yaml_delete_query="{\"query\": \"mutation { deletePackageVersion(input:{packageVersionId:\\\"${yaml_version_id}\\\"}) { success }}\"}"
yaml_delete_json=`curl -X POST \
-H "Accept: application/vnd.github.package-deletes-preview+json" \
-H "Authorization: bearer ${{ secrets.GITHUB_TOKEN }}" \
-d "$yaml_delete_query" \
https://api.github.com/graphql`
yaml_result=`echo $yaml_delete_json | jq ".data.deletePackageVersion.success"`
if [ "$yaml_result" != "true" ]; then
echo "could not delete dxYaml version ${yaml_version} with package ID ${yaml_version_id}"
echo "$yaml_delete_json"
exit 1
fi
fi
- name: Publish Snapshot
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
sbt 'project common' publish
sbt 'project api' publish
sbt 'project protocols' publish
sbt 'project yaml' publish