From 1cb0511e5b599e9a1b5a9386f1412aeedd518aec Mon Sep 17 00:00:00 2001 From: Margaret Black Date: Wed, 9 Oct 2024 12:26:54 -0500 Subject: [PATCH] added build2 to test changes --- .github/workflows/build2.yml | 141 +++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 .github/workflows/build2.yml diff --git a/.github/workflows/build2.yml b/.github/workflows/build2.yml new file mode 100644 index 000000000..6eb2849d9 --- /dev/null +++ b/.github/workflows/build2.yml @@ -0,0 +1,141 @@ +# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-maven + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +name: Build aissemble 2 + +on: + workflow_dispatch: + inputs: + buildBranch: + description: "Branch you want to build" + required: true + type: string + default: "366-follow-on-to-investigate-sagemaker-poetry-lock-slowness" + push: + branches: [ "366-follow-on-to-investigate-sagemaker-poetry-lock-slowness" ] + schedule: + - cron: "0 6 * * *" # every day at 6am UTC + +jobs: + build: + runs-on: arc-runner-set-aissemble + env: + DOCKER_CONFIG: /home/runner/.docker + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ inputs.buildBranch }} + - name: clear cache on nightly build + if: ${{ github.event.schedule }} + uses: actions/github-script@v6 + with: + script: | + console.log("Clearing cache") + const caches = await github.rest.actions.getActionsCacheList({ + owner: context.repo.owner, + repo: context.repo.repo, + }) + for (const cache of caches.data.actions_caches) { + console.log(cache) + github.rest.actions.deleteActionsCacheById({ + owner: context.repo.owner, + repo: context.repo.repo, + cache_id: cache.id, + }) + } + console.log("Clear completed") + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Install required packages + run: | + sudo apt-get update + sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl \ + git libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev zip unzip \ + libpython3.11 + - name: Install Python + uses: gabrielfalcao/pyenv-action@v18 + with: + default: 3.11.4 + # - name: Load m2 repository cache # Manually caching .m2 repo as the setup-java caching isn't falling back to older caches + # id: cached-m2-repo + # uses: actions/cache@v4 + # with: + # path: ~/.m2/repository + # key: maven-${{ hashFiles('**/pom.xml') }} + # restore-keys: | + # maven- + # - name: Load m2 build cache + # id: cached-m2-build + # uses: actions/cache@v4 + # with: + # path: ~/.m2/build-cache + # key: maven-build-cache-${{ hashFiles('**/pom.xml') }} + # restore-keys: | + # maven-build-cache- + - name: Install Poetry + uses: snok/install-poetry@v1 + # - name: Poetry cache + # id: cached-poetry + # uses: actions/cache@v4 + # with: + # path: ~/.cache/pypoetry + # key: poetry-cache-${{ hashFiles('**/pom.xml') }} + # restore-keys: | + # poetry- + - name: Install Helm + run: | + curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 + chmod 700 get_helm.sh + ./get_helm.sh + - name: Install Helm Unittest Plugin + run: | + echo "Updating helm unittest plugin to latest version..." + helm plugin install https://github.com/helm-unittest/helm-unittest.git + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + - name: Create Docker Builder Config File + run: sudo touch /etc/buildkitd.toml + # Generate the settings.xml for ghcr.io, pypi, & dev-pypi server profiles + - name: Create settings.xml + run: | + echo "ghcr.io${{ secrets.GHCR_IO_USERNAME }}${{ secrets.GHCR_IO_TOKEN }}pypi${{ secrets.PYPI_USERNAME }}${{ secrets.PYPI_TOKEN }}dev-pypi${{ secrets.TEST_PYPI_USERNAME }}${{ secrets.TEST_PYPI_TOKEN }} " > $HOME/.m2/settings.xml + # Run build with the gh-build profile + - name: Build aiSSEMBLE + run: | + ./mvnw -B clean deploy -U -file pom.xml -Pci,integration-test,gh-build -pl : --settings $HOME/.m2/settings.xml + # Install Maven which is needed for archetype tests + - name: Set up Maven + uses: stCarolas/setup-maven@v5 + with: + maven-version: 3.9.9 + # Execute archetype tests + - name: Run Archetype Tests + run: | + ./mvnw -B clean install -Parchetype-test -pl :foundation-archetype + #NB: The following two explicit cache saves are necessary to ensure caches are saved on build failure, + # until https://github.com/actions/cache/issues/1315 is resolved + # - name: Save m2 repository cache + # id: save-m2-repo + # uses: actions/cache/save@v4 + # if: always() + # with: + # path: ~/.m2/repository + # key: maven-${{ hashFiles('**/pom.xml') }} + # - name: Save m2 build cache + # id: save-m2-build + # uses: actions/cache/save@v4 + # if: always() + # with: + # path: ~/.m2/build-cache + # key: maven-build-cache-${{ hashFiles('**/pom.xml') }}