Release Flex #18
This file contains hidden or 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 Flex | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Version of Flex' | |
| 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 | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Check that we have bumped release number | |
| run: | | |
| ./scripts/release_number_check.sh ${{github.event.inputs.release_number_bump}} | |
| - name: Log into 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@v3 | |
| with: | |
| username: ${{ secrets.DOCKER_USER }} | |
| password: ${{ secrets.DOCKER_TOKEN }} | |
| - name: Configure AWS Credentials (OIDC) | |
| uses: aws-actions/configure-aws-credentials@v4 | |
| with: | |
| role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
| aws-region: us-east-1 | |
| - name: Release Flex JDK11 JAR | |
| run: | | |
| VERSION=${{github.event.inputs.version}} | |
| VERSION="${VERSION//./-}" | |
| aws s3 cp target/flex-java11-standalone.jar s3://${{ secrets.RELEASES_BUCKET }}/flex-$VERSION-java11.jar | |
| - name: Release Flex JDK8 JAR | |
| run: | | |
| VERSION=${{github.event.inputs.version}} | |
| VERSION="${VERSION//./-}" | |
| aws s3 cp target/flex-java8-standalone.jar s3://${{ secrets.RELEASES_BUCKET }}/flex-$VERSION-java8.jar | |
| - name: Release Flex JDK17 JAR | |
| run: | | |
| VERSION=${{github.event.inputs.version}} | |
| VERSION="${VERSION//./-}" | |
| aws s3 cp target/flex-java17-standalone.jar s3://${{ secrets.RELEASES_BUCKET }}/flex-$VERSION-java17.jar | |
| - name: Release Dependency Check Report | |
| run: | | |
| VERSION=${{github.event.inputs.version}} | |
| VERSION="${VERSION//./-}" | |
| tar xzf flex-enterprise-nvd-report.tar.gz | |
| cd flex-enterprise-nvd-report | |
| mv *.html index.html | |
| aws s3 cp index.html s3://${{ secrets.RELEASES_BUCKET }}/flex-dependency-check-report-$VERSION.html | |
| - name: Log into GitHub packages | |
| run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin | |
| - | |
| # Add support for more platforms with QEMU (optional) | |
| # https://github.com/docker/setup-qemu-action | |
| name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - | |
| name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Build Flex | |
| run: | | |
| VERSION=${{github.event.inputs.version}} | |
| IMAGE_ID=factorhouse/flex | |
| IMAGE_TAG=$VERSION | |
| ./scripts/build_all.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/flex/Dockerfile | |
| - name: Build Flex (latest) | |
| run: | | |
| VERSION=${{github.event.inputs.version}} | |
| IMAGE_ID=factorhouse/flex | |
| IMAGE_TAG=latest | |
| ./scripts/build_all.sh $VERSION $IMAGE_ID $IMAGE_TAG dockerfile/flex/Dockerfile | |
| - name: Build Flex (Community) | |
| run: | | |
| NEXT_RELEASE=${{github.event.inputs.version}} | |
| docker buildx build -f ./dockerfile/flex-ce/Dockerfile --platform=linux/amd64,linux/arm64 --sbom=true --provenance=true -t factorhouse/flex-ce:latest --push . | |
| docker buildx build -f ./dockerfile/flex-ce/Dockerfile --platform=linux/amd64,linux/arm64 --sbom=true --provenance=true -t factorhouse/flex-ce:$NEXT_RELEASE --push . | |
| - name: Install babashka | |
| run: sudo bash < <(curl -s https://raw.githubusercontent.com/babashka/babashka/master/install) | |
| - name: Update releases-flex-ee.edn | |
| run: ./scripts/release.clj ${{github.event.inputs.version}} releases-flex-ee.edn | |
| - name: Update dockerhub/flex/README.md | |
| run: echo ${{github.event.inputs.version}} | ./scripts/dockerhub_readme_flex.clj | |
| - name: Update releases-flex-ce.edn | |
| run: ./scripts/release.clj ${{github.event.inputs.version}} releases-flex-ce.edn | |
| - name: Update dockerhub/flex-ce/README.md | |
| run: echo ${{github.event.inputs.version}} | ./scripts/dockerhub_readme_ce.clj | |
| - name: Deploy Manifest to s3 (community) | |
| run: | |
| aws s3 cp docs/releases-flex-ce.edn s3://${{ secrets.RELEASES_BUCKET }}/releases-flex-ce.edn --cache-control no-cache --content-type application/edn | |
| - name: Deploy Manifest to s3 | |
| run: | | |
| aws s3 cp docs/releases-flex-ee.edn s3://${{ secrets.RELEASES_BUCKET }}/releases-flex-ee.edn --cache-control no-cache --content-type application/edn | |
| - name: Commit and push | |
| run: | | |
| git config user.name "github-actions[bot]" | |
| git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
| git commit -am "Release ${{github.event.inputs.version}}" | |
| git push origin main | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{github.event.inputs.version}} | |
| name: ${{github.event.inputs.version}} | |
| body: "Visit https://factorhouse.io/blog/releases/ for release details" | |
| draft: false | |
| prerelease: false |