Skip to content
Merged
30 changes: 27 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: CI
on:
push:
branches: [main]
branches: ['**']
pull_request:
branches: [main]

Expand All @@ -20,13 +20,18 @@ jobs:

build-and-push:
needs: test
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
if: github.event_name == 'push'
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- name: Compute sanitized branch tag
run: |
SAFE_BRANCH="${GITHUB_REF_NAME}"
# Docker tag spec forbids '/'; replace with '-' so slash-containing branches build
echo "SAFE_BRANCH=${SAFE_BRANCH//\//-}" >> $GITHUB_ENV
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
Expand All @@ -38,6 +43,25 @@ jobs:
push: true
tags: |
ghcr.io/mintproject/model-catalog-api:${{ github.sha }}
ghcr.io/mintproject/model-catalog-api:latest
ghcr.io/mintproject/model-catalog-api:${{ env.SAFE_BRANCH }}
cache-from: type=gha
cache-to: type=gha,mode=max

tag-latest:
needs: build-and-push
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Tag commit SHA image as latest
run: |
docker buildx imagetools create \
--tag ghcr.io/mintproject/model-catalog-api:latest \
ghcr.io/mintproject/model-catalog-api:${{ github.sha }}
144 changes: 144 additions & 0 deletions openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9372,6 +9372,76 @@ paths:
tags:
- DatasetSpecification
x-oba-custom: true
/tapis/{tenant}/apps:
get:
operationId: custom_tapis_apps_get
description: List Tapis applications for the given tenant.
parameters:
- description: Tapis tenant identifier
explode: false
in: path
name: tenant
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
schema:
items:
$ref: "#/components/schemas/TapisApp"
type: array
description: Successful response - returns an array with the instances of TapisApp.
summary: List all instances of TapisApp
tags:
- TapisApp
security:
- BearerAuth: []
x-oba-custom: true
/tapis/{tenant}/apps/{app_id}/{app_version}:
get:
operationId: custom_tapis_apps_id_get
description: Get the details of a single Tapis application by id and version.
parameters:
- description: Tapis tenant identifier
explode: false
in: path
name: tenant
required: true
schema:
type: string
style: simple
- description: Tapis application id
explode: false
in: path
name: app_id
required: true
schema:
type: string
style: simple
- description: Tapis application version
explode: false
in: path
name: app_version
required: true
schema:
type: string
style: simple
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/TapisApp"
description: Successful response - returns an instance of TapisApp.
summary: Get a single TapisApp by its id
tags:
- TapisApp
security:
- BearerAuth: []
x-oba-custom: true
components:
schemas:
Intervention:
Expand Down Expand Up @@ -14028,6 +14098,13 @@ components:
type: integer
nullable: true
type: array
isOptional:
description: >-
When true, this input is optional for the configuration.
Ensemble manager will skip it during Tapis job submission if no dataset
is bound, rather than failing with an error.
nullable: true
type: boolean
id:
description: identifier
nullable: false
Expand Down Expand Up @@ -17557,6 +17634,73 @@ components:
- $ref: "#/components/schemas/GeoCoordinates"
- $ref: "#/components/schemas/GeoShape"
title: Region_geo_inner
TapisApp:
description: Tapis application (proxied from Tapis v3 /apps endpoint).
type: object
properties:
tenant:
type: string
id:
type: string
version:
type: string
description:
type: string
owner:
type: string
enabled:
type: boolean
versionEnabled:
type: boolean
locked:
type: boolean
isPublic:
type: boolean
sharedWithUsers:
type: array
items:
type: string
runtime:
type: string
runtimeVersion:
type: string
runtimeOptions:
type: array
items:
type: string
containerImage:
type: string
jobType:
type: string
maxJobs:
type: integer
maxJobsPerUser:
type: integer
strictFileInputs:
type: boolean
jobAttributes:
type: object
additionalProperties: true
tags:
type: array
items:
type: string
notes:
type: object
additionalProperties: true
sharedAppCtx:
type: string
uuid:
type: string
deleted:
type: boolean
created:
type: string
format: date-time
updated:
type: string
format: date-time
title: TapisApp
securitySchemes:
BearerAuth:
bearerFormat: JWT
Expand Down
100 changes: 100 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
"@fastify/jwt": "^10.0.0",
"@fastify/swagger": "^9.7.0",
"@fastify/swagger-ui": "^5.2.5",
"@tapis/tapis-typescript": "^0.0.66",
"fastify": "^5.7.4",
"fastify-openapi-glue": "^4.10.2",
"graphql": "^16.12.0"
Expand Down
Loading
Loading