Demonstration of webapp #213
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deployment images | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- v* | |
pull_request: | |
jobs: | |
bartender: | |
runs-on: ubuntu-latest | |
permissions: | |
packages: write | |
contents: read | |
env: | |
HADDOCK3_GHORG: "haddocking" | |
HADDOCK3_VERSION: "main" | |
BARTENDER_VERSION: "v0.5.1" | |
GDOCK_VERSION: "main" | |
LIGHTDOCK_VERSION: "0.9.4" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ghcr.io/i-vresse/bartender | |
labels: | | |
org.opencontainers.image.description=bartender web service with haddock3, lightdock, gdock executables. Image does contain cns executable, which is free for non-profit users, see https://github.com/haddocking/haddock3/blob/main/DISCLAIMER.md. | |
org.opencontainers.image.url=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/README.md#images | |
org.opencontainers.image.documentation.url=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/README.md#images | |
- name: Login to DockerHub | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v5 | |
with: | |
context: deploy | |
file: deploy/Dockerfile.bartenderhaddock3 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
platforms: ${{startsWith(steps.meta.outputs.version, 'pr-') && 'linux/amd64' || 'linux/arm64,linux/amd64' }} | |
build-args: | | |
HADDOCK3_VERSION=${{ env.HADDOCK3_VERSION }} | |
HADDOCK3_GHORG=${{ env.HADDOCK3_GHORG }} | |
BARTENDER_VERSION=${{ env.BARTENDER_VERSION }} | |
GDOCK_VERSION=${{ env.GDOCK_VERSION }} | |
LIGHTDOCK_VERSION=${{ env.LIGHTDOCK_VERSION }} | |
certmaker: | |
runs-on: ubuntu-latest | |
permissions: | |
packages: write | |
contents: read | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ghcr.io/i-vresse/certmaker | |
labels: | | |
org.opencontainers.image.description=Generates a rsa private key (/certs/private_key.pem file) and public key (/certs/public_key.pem file) pair on startup. | |
org.opencontainers.image.url=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/README.md#images | |
org.opencontainers.image.documentation.url=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/README.md#images | |
- name: Login to DockerHub | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v5 | |
with: | |
context: deploy | |
file: deploy/Dockerfile.openssl | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
platforms: ${{startsWith(steps.meta.outputs.version, 'pr-') && 'linux/amd64' || 'linux/arm64,linux/amd64' }} | |
webapp: | |
runs-on: ubuntu-latest | |
permissions: | |
packages: write | |
contents: read | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ghcr.io/i-vresse/haddock3-webapp | |
labels: | | |
org.opencontainers.image.description=Haddock3 web application image. | |
org.opencontainers.image.url=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/README.md#images | |
org.opencontainers.image.documentation.url=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/README.md#images | |
- name: Login to DockerHub | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v5 | |
with: | |
file: deploy/Dockerfile | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
platforms: ${{startsWith(steps.meta.outputs.version, 'pr-') && 'linux/amd64' || 'linux/arm64,linux/amd64' }} | |
webapp4portal: | |
runs-on: ubuntu-latest | |
permissions: | |
packages: write | |
contents: read | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ghcr.io/i-vresse/haddock3-webapp-portal | |
labels: | | |
org.opencontainers.image.description=Haddock3 web application image. | |
org.opencontainers.image.url=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/README.md#images | |
org.opencontainers.image.documentation.url=https://github.com/i-VRESSE/haddock3-webapp/blob/main/deploy/README.md#images | |
- name: Login to DockerHub | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v5 | |
with: | |
file: deploy/Dockerfile | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
build-args: "HADDOCK3WEBAPP_PREFIX=/haddock3/" | |
labels: ${{ steps.meta.outputs.labels }} | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
platforms: "linux/amd64" | |
playwright: | |
needs: | |
- bartender | |
- certmaker | |
- webapp | |
timeout-minutes: 60 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
- name: Install dependencies | |
run: npm ci | |
- name: Install Playwright Browsers | |
run: npx playwright install --with-deps | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ghcr.io/i-vresse/haddock3-webapp | |
- name: Pull images | |
run: docker compose -f deploy/arq/docker-compose.yml -p playwright pull | |
env: | |
WEBAPP_TAG: ${{ steps.meta.outputs.version }} | |
BARTENDER_TAG: ${{ steps.meta.outputs.version }} | |
CERTMAKER_TAG: ${{ steps.meta.outputs.version }} | |
- name: Run Playwright tests | |
run: npx playwright test | |
env: | |
WEBAPP_TAG: ${{ steps.meta.outputs.version }} | |
BARTENDER_TAG: ${{ steps.meta.outputs.version }} | |
CERTMAKER_TAG: ${{ steps.meta.outputs.version }} |