From 6b670ce5c4e569f60812f77f8cd3416c0a05bd0d Mon Sep 17 00:00:00 2001 From: Michael Housh Date: Sat, 7 Dec 2024 09:48:45 -0500 Subject: [PATCH] feat: Adds ci --- .dockerignore | 1 + .gitea/workflows/ci.yml | 21 +++++++++++++++++++++ docker/Dockerfile.test | 8 ++++++++ justfile | 10 ++++++++++ 4 files changed, 40 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitea/workflows/ci.yml create mode 100644 docker/Dockerfile.test diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..bb56973 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +.build/* diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..e497273 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,21 @@ +--- +name: CI +on: + push: + branches: ["main"] + pull_request: + +jobs: + test: + name: Run tests. + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup just. + uses: extractions/setup-just@v2 + - name: Setup QEMU + uses: docker/setup-qemu-action@v3 + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Run tests. + run: just test-docker diff --git a/docker/Dockerfile.test b/docker/Dockerfile.test new file mode 100644 index 0000000..6eb9a0c --- /dev/null +++ b/docker/Dockerfile.test @@ -0,0 +1,8 @@ +ARG SWIFT_IMAGE_VERSION="6.0" +FROM swift:${SWIFT_IMAGE_VERSION} +WORKDIR /app +COPY ./Package.* ./ +RUN swift package resolve +COPY . . +RUN swift build +CMD ["/bin/bash", "-xc", "swift", "test"] diff --git a/justfile b/justfile index d5b903f..8cd7a93 100644 --- a/justfile +++ b/justfile @@ -1,3 +1,4 @@ +docker_image_name := "clidoc" [private] default: @@ -6,6 +7,15 @@ default: clean: @rm -rf .build +test-docker: build-docker + @docker run -t --rm {{docker_image_name}}:test swift test + +build-docker: + @docker build \ + --file docker/Dockerfile.test \ + --tag {{docker_image_name}}:test \ + . + preview-documentation target="CliDoc": # using the --enable-experimental-combined-documentation doesn't work in previews currently. @swift package \