diff --git a/.gitea/workflows/docker-build.yaml b/.gitea/workflows/docker-build.yaml index 586bfcb..89bb002 100644 --- a/.gitea/workflows/docker-build.yaml +++ b/.gitea/workflows/docker-build.yaml @@ -1,66 +1,55 @@ name: Docker Build and Push - on: - pull_request: push: + branches: [master] + pull_request: schedule: - cron: '30 3 * * 3' - jobs: lint: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 - - name: Hadolint - uses: hadolint/hadolint-action@54c9adbab1582c2ef04b2016b760714a4bfde3cf - + - uses: https://github.com/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 + - uses: https://github.com/hadolint/hadolint-action@54c9adbab1582c2ef04b2016b760714a4bfde3cf + with: + dockerfile: Dockerfile build: runs-on: ubuntu-latest needs: lint steps: - - name: Checkout - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 + - uses: https://github.com/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 - name: Build image run: docker build -t ci-image:${{ github.sha }} . - name: Save image - run: docker save ci-image:${{ github.sha }} > image.tar - - name: Upload artifact - uses: ChristopherHX/gitea-upload-artifact@62ac910c5d3dfa85c7cb2df15afe2e342b2407c2 + run: docker save ci-image:${{ github.sha }} -o image.tar + - uses: https://github.com/ChristopherHX/gitea-upload-artifact@62ac910c5d3dfa85c7cb2df15afe2e342b2407c2 with: name: docker-image path: image.tar - test: runs-on: ubuntu-latest needs: build steps: - - name: Checkout - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 - - name: Download artifact - uses: ChristopherHX/gitea-download-artifact@75635f32b4c1c41c4b3d64e8f85210112ed4c9c7 + - uses: https://github.com/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 + - uses: https://github.com/ChristopherHX/gitea-download-artifact@75635f32b4c1c41c4b3d64e8f85210112ed4c9c7 with: name: docker-image - name: Load image run: docker load < image.tar - name: Run tests run: bash tests/test.sh ci-image:${{ github.sha }} - push: runs-on: ubuntu-latest - if: github.event_name != 'pull_request' needs: test + if: github.event_name != 'pull_request' steps: - - name: Checkout - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 - - name: Download artifact - uses: ChristopherHX/gitea-download-artifact@75635f32b4c1c41c4b3d64e8f85210112ed4c9c7 + - uses: https://github.com/actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 + - uses: https://github.com/ChristopherHX/gitea-download-artifact@75635f32b4c1c41c4b3d64e8f85210112ed4c9c7 with: name: docker-image - name: Load image run: docker load < image.tar - - name: Login to Docker Hub - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee + - uses: https://github.com/docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/tests/test.sh b/tests/test.sh index f3089fe..52d73c8 100644 --- a/tests/test.sh +++ b/tests/test.sh @@ -1,8 +1,31 @@ #!/bin/bash set -euo pipefail -IMAGE="${1:-}" -if [ -z "$IMAGE" ]; then - echo "Usage: $0 " + +IMAGE="$1" +FAILED=0 +PASSED=0 + +# Test 1: container runs and exits +if docker run --rm "$IMAGE" --help > /dev/null 2>&1; then + echo "PASS: container runs successfully" + PASSED=$((PASSED + 1)) +else + echo "FAIL: container failed to run" + FAILED=$((FAILED + 1)) +fi + +# Test 2: produces output +OUTPUT=$(docker run --rm "$IMAGE" --version 2>&1) +if [ -n "$OUTPUT" ]; then + echo "PASS: produces output" + PASSED=$((PASSED + 1)) +else + echo "FAIL: no output" + FAILED=$((FAILED + 1)) +fi + +echo "" +echo "$PASSED/$((PASSED + FAILED)) tests passed" +if [ "$FAILED" -gt 0 ]; then exit 1 fi -docker run --rm "$IMAGE" --version