Skip to content

OAS validation API (#249) #101

OAS validation API (#249)

OAS validation API (#249) #101

Workflow file for this run

name: Draft release from master
on:
push:
branches:
- master
jobs:
release-on-push:
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install deps
run: |
sudo apt update
sudo apt install -y pipx git
pipx ensurepath
pipx install poetry
- name: Test coverage for Gateway API
run: |
export PATH=/root/.local/bin:$PATH
cd microservices/gatewayApi
poetry env use 3.11
poetry install --no-root --no-cache
ENV=test GITHASH=11223344 \
poetry run coverage run --branch -m pytest -s -v
poetry run coverage xml
- name: Test coverage for Scheduler API
run: |
export PATH=/root/.local/bin:$PATH
cd microservices/gatewayJobScheduler
poetry install --no-root
SYNC_INTERVAL=1000 \
DATA_PLANE=test-dp \
poetry run coverage run --branch -m pytest -s -v
poetry run coverage xml
- name: Test coverage for Kube API
run: |
export PATH=/root/.local/bin:$PATH
cd microservices/kubeApi
poetry install --no-root
ACCESS_USER=kubeuser ACCESS_SECRET=s3cret \
poetry run coverage run --branch -m pytest -s -v
poetry run coverage xml
- name: Test coverage for Compatibility API
run: |
export PATH=/root/.local/bin:$PATH
cd microservices/compatibilityApi
poetry install --no-root
poetry run coverage run --branch -m pytest -s -v
poetry run coverage xml
- uses: actions/setup-python@v6
with:
python-version: "3.14"
- name: Test coverage for CSIT OAS Validation API
run: |
export PATH=/root/.local/bin:$PATH
sudo apt install -y nodejs npm
sudo npm install -g @stoplight/spectral-cli@6.14.2
cd microservices/csitOasValidationApi
poetry env use python3.14
poetry install --no-root
./checkout-ruleset-tags.sh ruleset_tag_cache || true
export GITHUB_TAG_CACHE_PATH="$(realpath -m ./ruleset_tag_cache)"
poetry run coverage run --branch -m pytest -s -v
poetry run coverage xml
- name: SonarCloud Scan
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
- id: release
uses: rymndhng/release-on-push-action@v0.24.0
with:
bump_version_scheme: patch
- name: Check Output Parameters
run: |
echo "Got tag name ${{ steps.release.outputs.tag_name }}"
echo "Got release version ${{ steps.release.outputs.version }}"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
logout: false
- name: Create gwa-api docker image related to the release
uses: docker/build-push-action@v5
with:
context: microservices/gatewayApi
file: microservices/gatewayApi/Dockerfile
push: true
tags: ghcr.io/bcgov/gwa-api/gwa-gateway-api:${{ steps.release.outputs.tag_name }}
labels: |
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
- name: Create gwa-kube-api docker image related to the release
uses: docker/build-push-action@v5
with:
context: microservices/kubeApi
file: microservices/kubeApi/Dockerfile
push: true
tags: ghcr.io/bcgov/gwa-api/gwa-kube-api:${{ steps.release.outputs.tag_name }}
labels: |
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
- name: Create gwa-scheduler docker image related to the release
uses: docker/build-push-action@v5
with:
context: microservices/gatewayJobScheduler
file: microservices/gatewayJobScheduler/Dockerfile
push: true
tags: ghcr.io/bcgov/gwa-api/gwa-scheduler:${{ steps.release.outputs.tag_name }}
labels: |
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
- name: Create gwa-compatibility-api docker image related to the release
uses: docker/build-push-action@v5
with:
context: microservices/compatibilityApi
file: microservices/compatibilityApi/Dockerfile
push: true
tags: ghcr.io/bcgov/gwa-api/gwa-compatibility-api:${{ steps.release.outputs.tag_name }}
labels: |
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
- name: Create gwa-csit-oas-validation-api docker image related to the release
uses: docker/build-push-action@v5
with:
context: microservices/csitOasValidationApi
file: microservices/csitOasValidationApi/Dockerfile
push: true
tags: ghcr.io/bcgov/gwa-api/gwa-csit-oas-validation-api:${{ steps.release.outputs.tag_name }}
labels: |
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}