Release Kpow #84
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: Release Kpow | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: 'Version of Kpow' | |
required: true | |
manifest: | |
description: 'URL of Manifest' | |
required: true | |
release_number_bump: | |
description: 'I have updated system.clj release number!' | |
required: true | |
default: 'false' | |
# These permissions are needed to interact with GitHub's OIDC Token endpoint. | |
permissions: | |
id-token: write | |
contents: write | |
packages: write | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Check that we have bumped release number | |
run: | | |
./scripts/release_number_check.sh ${{github.event.inputs.release_number_bump}} | |
- name: Configure AWS Credentials (OIDC) | |
uses: aws-actions/configure-aws-credentials@v1 | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
aws-region: us-east-1 | |
- name: Log into DockerHub registry | |
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin | |
- name: Download and verify JAR(s) | |
run: | | |
./scripts/jar.sh "${{github.event.inputs.manifest}}" | |
- name: Login to DockerHub | |
uses: docker/login-action@v2 | |
with: | |
username: ${{ secrets.DOCKER_USER }} | |
password: ${{ secrets.DOCKER_TOKEN }} | |
- name: Log into GitHub packages | |
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin | |
- name: Release Kpow JDK11 JAR | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
VERSION="${VERSION//./-}" | |
aws s3 cp target/kpow-java11-standalone.jar s3://${{ secrets.RELEASES_BUCKET }}/kpow-$VERSION-java11.jar | |
- name: Release Kpow JDK8 JAR | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
VERSION="${VERSION//./-}" | |
aws s3 cp target/kpow-java8-standalone.jar s3://${{ secrets.RELEASES_BUCKET }}/kpow-$VERSION-java8.jar | |
- name: Release Dependency Check Report | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
VERSION="${VERSION//./-}" | |
tar xzf kpow-enterprise-nvd-report.tar.gz | |
cd kpow-enterprise-nvd-report | |
mv *.html index.html | |
aws s3 cp index.html s3://${{ secrets.RELEASES_BUCKET }}/kpow-dependency-check-report-$VERSION.html | |
- | |
# Add support for more platforms with QEMU (optional) | |
# https://github.com/docker/setup-qemu-action | |
name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- | |
name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Build Kpow Alpine (EE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-ee | |
IMAGE_TAG=$VERSION-alpine | |
./scripts/build_amd64.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/alpine/Dockerfile | |
### deprecated operatr repo | |
- name: Build Kpow (operatr/kpow:$VERSION) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=operatr/kpow | |
IMAGE_TAG=$VERSION | |
./scripts/build_all.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/kpow/Dockerfile | |
- name: Build Kpow (latest) (operatr/kpow:latest) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=operatr/kpow | |
IMAGE_TAG=latest | |
./scripts/build_all.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/kpow/Dockerfile | |
- name: Build Kpow (operatr/operatr:$VERSION) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=operatr/operatr | |
IMAGE_TAG=$VERSION | |
./scripts/build_all.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/kpow/Dockerfile | |
- name: Build Kpow (latest) (operatr/operatr:latest) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=operatr/operatr | |
IMAGE_TAG=latest | |
./scripts/build_all.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/kpow/Dockerfile | |
### EE builds | |
- name: Build Kpow Red Hat UBI (EE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-ee | |
IMAGE_TAG=$VERSION-rh-ubi | |
./scripts/build_amd64.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/rh-ubi/Dockerfile | |
- name: Build Kpow AWS Marketplace LM (EE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=ghcr.io/factorhouse/kpow/kpow | |
IMAGE_TAG=$VERSION-aws-mkt-lm | |
./scripts/build_amd64.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/aws-mkt-lm/Dockerfile | |
- name: Build Kpow AWS Marketplace Corp (EE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=ghcr.io/factorhouse/kpow/kpow | |
IMAGE_TAG=$VERSION-aws-mkt-corp | |
./scripts/build_amd64.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/aws-mkt-corp/Dockerfile | |
- name: Build Kpow AWS Marketplace Pro (EE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=ghcr.io/factorhouse/kpow/kpow | |
IMAGE_TAG=$VERSION-aws-mkt-pro | |
./scripts/build_amd64.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/aws-mkt-pro/Dockerfile | |
- name: Build Kpow AWS Marketplace Team (EE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=ghcr.io/factorhouse/kpow/kpow | |
IMAGE_TAG=$VERSION-aws-mkt-team | |
./scripts/build_amd64.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/aws-mkt-team/Dockerfile | |
- name: Build Kpow (JDK17) (EE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-ee | |
IMAGE_TAG=$VERSION-jdk17 | |
./scripts/build_all.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/jdk17/Dockerfile | |
- name: Build Kpow (EE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-ee | |
IMAGE_TAG=$VERSION | |
./scripts/build_all.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/kpow/Dockerfile | |
- name: Build Kpow (latest) (EE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-ee | |
IMAGE_TAG=latest | |
./scripts/build_all.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/kpow/Dockerfile | |
### SE builds | |
- name: Build Kpow Alpine (SE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-se | |
IMAGE_TAG=$VERSION-alpine | |
./scripts/build_amd64.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/alpine/Dockerfile | |
- name: Build Kpow Red Hat UBI (SE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-se | |
IMAGE_TAG=$VERSION-rh-ubi | |
./scripts/build_amd64.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/rh-ubi/Dockerfile | |
- name: Build Kpow AWS Marketplace LM (SE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-se | |
IMAGE_TAG=$VERSION-aws-mkt-lm | |
./scripts/build_amd64.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/aws-mkt-lm/Dockerfile | |
- name: Build Kpow AWS Marketplace Corp (SE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-se | |
IMAGE_TAG=$VERSION-aws-mkt-corp | |
./scripts/build_amd64.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/aws-mkt-corp/Dockerfile | |
- name: Build Kpow AWS Marketplace Pro (SE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-se | |
IMAGE_TAG=$VERSION-aws-mkt-pro | |
./scripts/build_amd64.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/aws-mkt-pro/Dockerfile | |
- name: Build Kpow AWS Marketplace Team (SE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-se | |
IMAGE_TAG=$VERSION-aws-mkt-team | |
./scripts/build_amd64.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/aws-mkt-team/Dockerfile | |
- name: Build Kpow (JDK17) (SE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-se | |
IMAGE_TAG=$VERSION-jdk17 | |
./scripts/build_all.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/jdk17/Dockerfile | |
- name: Build Kpow (SE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-se | |
IMAGE_TAG=$VERSION | |
./scripts/build_all.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/kpow/Dockerfile | |
- name: Build Kpow (latest) (SE) | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
IMAGE_ID=factorhouse/kpow-se | |
IMAGE_TAG=latest | |
./scripts/build_all.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/kpow/Dockerfile | |
- name: Deploy OpenAPI spec | |
run: | | |
VERSION=${{github.event.inputs.version}} | |
VERSION="${VERSION//./-}" | |
aws s3 cp target/kpow-enterprise-openapi.json s3://${{ secrets.RELEASES_BUCKET }}/kpow-enterprise-openapi-$VERSION.json \ | |
--cache-control no-cache --content-type application/json | |
- name: Install babashka | |
run: sudo bash < <(curl -s https://raw.githubusercontent.com/babashka/babashka/master/install) | |
- name: Update releases-ee.edn | |
run: ./scripts/release.clj ${{github.event.inputs.version}} releases-ee.edn | |
- name: Update releases-v2.edn | |
run: ./scripts/release.clj ${{github.event.inputs.version}} releases-v2.edn | |
- name: Update dockerhub/kpow-ee/README.md | |
run: echo ${{github.event.inputs.version}} | ./scripts/dockerhub_readme_ee.clj | |
- name: Update dockerhub/kpow-se/README.md | |
run: echo ${{github.event.inputs.version}} | ./scripts/dockerhub_readme_se.clj | |
- name: Deploy Manifest to s3 | |
run: | | |
aws s3 cp docs/releases-ee.edn s3://${{ secrets.RELEASES_BUCKET }}/releases-kpow-ee.edn \ | |
--cache-control no-cache --content-type application/edn | |
- name: Commit | |
run: | | |
git config --global user.email "[email protected]" | |
git config --global user.name "Kpow CI" | |
git commit -am "Release Enterprise ${{github.event.inputs.version}}" | |
- name: Tag | |
run: git tag -a ee/${{github.event.inputs.version}} -m "Release Enterprise ${{github.event.inputs.version}}" | |
- name: Push changes | |
uses: ad-m/github-push-action@master | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
branch: ${{ github.ref }} |