Skip to content

Docker Test

Docker Test #4

Workflow file for this run

name: docker-test
run-name: Docker Test
on:
push:
branches:
- feature/public-registry
permissions:
packages: write
contents: read
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: "corretto"
java-version: 17
- name: Tests
run: ./gradlew server:test
sdk-java:
runs-on: ubuntu-latest
needs:
- test
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Java
uses: actions/setup-java@v3
with:
distribution: "corretto"
java-version: "11"
- name: Tests
run: ./gradlew sdk-java:test
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v5
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
- name: Generate KeyRing
run: |
gpg --keyring secring.gpg --export-secret-keys --passphrase ${{ secrets.GPG_PASSPHRASE }} --batch --yes --pinentry-mode=loopback > ~/.gnupg/secring.gpg
ls ~/.gnupg/
- name: Publish
run: |
./gradlew sdk-java:publish -Psigning.secretKeyRingFile=/home/runner/.gnupg/secring.gpg -Psigning.password=${{ secrets.GPG_PASSPHRASE }} -Psigning.keyId=${{ vars.GPG_KEY_ID }} -PossrhUsername=${{ secrets.OSSRH_USERNAME }} -PossrhPassword=${{ secrets.OSSRH_PASSWORD }}
echo Login at https://s01.oss.sonatype.org/
sdk-python:
runs-on: ubuntu-latest
needs:
- test
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.9"
- name: Install Dependencies
run: |
python -m pip install --upgrade pip setuptools wheel
pip install poetry
- name: Tests
working-directory: ./sdk-python
run: |
poetry install
poetry run python -m unittest -v
poetry build
- name: Publish Package
uses: pypa/[email protected]
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
packages-dir: ./sdk-python/dist/
lh-server:
runs-on: ubuntu-latest
needs:
- test
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build and publish
uses: ./.github/actions/publish-image
with:
image-name: lh-server
dockerfile: docker/server/Dockerfile
github-token: ${{ secrets.GITHUB_TOKEN }}
lhctl:
runs-on: ubuntu-latest
needs:
- test
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build and publish
uses: ./.github/actions/publish-image
with:
image-name: lhctl
dockerfile: docker/lhctl/Dockerfile
github-token: ${{ secrets.GITHUB_TOKEN }}
dashboard-build:
runs-on: ubuntu-latest
needs:
- test
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build Dashboard
working-directory: ./dashboard
run: |
npm install pnpm --global
pnpm install
pnpm build
- uses: actions/upload-artifact@v4
with:
name: nextjs
path: dashboard/apps/web/.next
lh-dashboard:
runs-on: ubuntu-latest
needs:
- dashboard-build
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Dowload NextJS artifact
uses: actions/download-artifact@v4
with:
name: nextjs
path: dashboard/apps/web/.next
- name: Build and publish
uses: ./.github/actions/publish-image
with:
image-name: lhctl
dockerfile: docker/lhctl/Dockerfile
github-token: ${{ secrets.GITHUB_TOKEN }}
lh-standalone:
runs-on: ubuntu-latest
needs:
- dashboard-build
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Dowload NextJS artifact
uses: actions/download-artifact@v4
with:
name: nextjs
path: dashboard/apps/web/.next
- name: Build and publish
uses: ./.github/actions/publish-image
with:
image-name: lh-standalone
dockerfile: docker/standalone/Dockerfile
github-token: ${{ secrets.GITHUB_TOKEN }}