From 3874a7b5050cf2aa419570d5ad14930e18ce1e2b Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sat, 22 Jul 2023 10:17:03 +0200 Subject: [PATCH] ci: merge test workflows --- .github/workflows/test-edge.yml | 84 --------------------------------- .github/workflows/test.yml | 12 +++++ Dockerfile | 1 + docker-bake.hcl | 7 +++ 4 files changed, 20 insertions(+), 84 deletions(-) delete mode 100644 .github/workflows/test-edge.yml diff --git a/.github/workflows/test-edge.yml b/.github/workflows/test-edge.yml deleted file mode 100644 index 9baf1cf..0000000 --- a/.github/workflows/test-edge.yml +++ /dev/null @@ -1,84 +0,0 @@ -name: test-edge - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -on: - push: - branches: - - 'master' - paths-ignore: - - '**.md' - pull_request: - paths-ignore: - - '**.md' - -env: - BUILD_TAG: librenms-test - CONTAINER_NAME: librenms - RUNNING_TIMEOUT: 120 - RUNNING_LOG_CHECK: ready to handle connections - -jobs: - test: - runs-on: ubuntu-latest - continue-on-error: true - steps: - - - name: Checkout - uses: actions/checkout@v3 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Build - uses: docker/bake-action@v3 - with: - targets: image-local - set: | - *.args.LIBRENMS_VERSION=master - env: - DEFAULT_TAG: ${{ env.BUILD_TAG }} - - - name: Start - run: | - docker compose up -d - working-directory: test - env: - LIBRENMS_IMAGE: ${{ env.BUILD_TAG }} - LIBRENMS_CONTAINER: ${{ env.CONTAINER_NAME }} - - - name: Test run - run: | - TIMEOUT=$((SECONDS + ${{ env.RUNNING_TIMEOUT }})) - while read LOGLINE; do - echo ${LOGLINE} - if [[ ${LOGLINE} == *"${{ env.RUNNING_LOG_CHECK }}"* ]]; then - echo "🎉 Container up!" - break - fi - if [[ $SECONDS -gt ${TIMEOUT} ]]; then - >&2 echo "❌ Failed to run ${{ env.CONTAINER_NAME }} container" - exit 1 - fi - done < <(docker logs -f ${{ env.CONTAINER_NAME }} 2>&1) - - CONTAINER_STATUS=$(docker container inspect --format "{{.State.Status}}" ${{ env.CONTAINER_NAME }}) - if [[ ${CONTAINER_STATUS} != "running" ]]; then - >&2 echo "❌ Container ${{ env.CONTAINER_NAME }} returned status '$CONTAINER_STATUS'" - exit 1 - fi - - - name: Logs - if: always() - run: | - docker compose logs - docker compose down --volumes > /dev/null 2>&1 || true - working-directory: test - env: - LIBRENMS_IMAGE: ${{ env.BUILD_TAG }} - LIBRENMS_CONTAINER: ${{ env.CONTAINER_NAME }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 83b37d4..00c1a0d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,19 @@ env: jobs: test: runs-on: ubuntu-latest + continue-on-error: ${{ matrix.version == 'master' }} + strategy: + fail-fast: false + matrix: + version: + - '' + - master steps: + - + name: Prepare + if: matrix.version != '' + run: | + echo "LIBRENMS_VERSION=${{ matrix.version }}" >> $GITHUB_ENV - name: Checkout uses: actions/checkout@v3 diff --git a/Dockerfile b/Dockerfile index 1ac09de..2111034 100644 --- a/Dockerfile +++ b/Dockerfile @@ -115,6 +115,7 @@ RUN apk --update --no-cache add -t build-dependencies \ linux-headers \ musl-dev \ python3-dev \ + && echo "Installing LibreNMS https://github.com/librenms/librenms.git#${LIBRENMS_VERSION}..." \ && git clone --depth=1 --branch ${LIBRENMS_VERSION} https://github.com/librenms/librenms.git . \ && pip3 install --ignore-installed -r requirements.txt --upgrade \ && COMPOSER_CACHE_DIR="/tmp" composer install --no-dev --no-interaction --no-ansi \ diff --git a/docker-bake.hcl b/docker-bake.hcl index fddf4dc..4d97692 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -2,9 +2,16 @@ variable "DEFAULT_TAG" { default = "librenms:local" } +variable "LIBRENMS_VERSION" { + default = null +} + // Special target: https://github.com/docker/metadata-action#bake-definition target "docker-metadata-action" { tags = ["${DEFAULT_TAG}"] + args = { + LIBRENMS_VERSION = LIBRENMS_VERSION + } } // Default target if none specified