From 395866a0f870cab6a60e877d1d70f72ba5961230 Mon Sep 17 00:00:00 2001 From: Shrukan Date: Sat, 17 Feb 2024 22:32:19 +0000 Subject: [PATCH 1/5] First cut at CI workflows (#6) Co-authored-by: Shrukan Reviewed-on: https://gitea.shrukanslab.xyz/sl-devs/CppTemplate/pulls/6 --- .gitea/workflows/build_and_test.yml | 55 +++++++++++++++ .gitea/workflows/build_docs.yml | 25 +++++++ .gitea/workflows/build_image.yml | 36 ++++++++++ ci/build-and-test.yml | 100 ---------------------------- 4 files changed, 116 insertions(+), 100 deletions(-) create mode 100644 .gitea/workflows/build_and_test.yml create mode 100644 .gitea/workflows/build_docs.yml create mode 100644 .gitea/workflows/build_image.yml delete mode 100644 ci/build-and-test.yml diff --git a/.gitea/workflows/build_and_test.yml b/.gitea/workflows/build_and_test.yml new file mode 100644 index 0000000..e59e07b --- /dev/null +++ b/.gitea/workflows/build_and_test.yml @@ -0,0 +1,55 @@ +name: Build and Test Code +run-name: ${{ gitea.ref }} Build +on: + push: + +jobs: + test: + runs-on: ubuntu-latest + container: gitea.shrukanslab.xyz/CppTemplate/dev-environment:latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + + - name: Unit test + run: just test + + coverage: + runs-on: ubuntu-latest + container: gitea.shrukanslab.xyz/CppTemplate/dev-environment:latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + + - name: Coverage + run: just coverage + + - name: Compress coverage report + run: tar -czf build/coverage.tar.gz build/meson-logs/coveragereport + + - name: Archive coverage report + uses: actions/upload-artifact@v4 + with: + name: docs + path: build/coverage.tar.gz + retention-days: 5 + + static_analysis: + runs-on: ubuntu-latest + container: gitea.shrukanslab.xyz/CppTemplate/dev-environment:latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + + - name: Static analysis + run: just check + + sanitize: + runs-on: ubuntu-latest + container: gitea.shrukanslab.xyz/CppTemplate/dev-environment:latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + + - name: Sanitize + run: just sanitize diff --git a/.gitea/workflows/build_docs.yml b/.gitea/workflows/build_docs.yml new file mode 100644 index 0000000..7c779ae --- /dev/null +++ b/.gitea/workflows/build_docs.yml @@ -0,0 +1,25 @@ +name: Build Docs +run-name: ${{ gitea.ref }} Build +on: + push: + +jobs: + build-docs: + runs-on: ubuntu-latest + container: gitea.shrukanslab.xyz/CppTemplate/dev-environment:latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + + - name: Build docs + run: just docs + + - name: Compress docs + run: tar -czf build/docs.tar.gz build/docs + + - name: Archive docs + uses: actions/upload-artifact@v4 + with: + name: docs + path: build/docs.tar.gz + retention-days: 5 diff --git a/.gitea/workflows/build_image.yml b/.gitea/workflows/build_image.yml new file mode 100644 index 0000000..a6fbc2b --- /dev/null +++ b/.gitea/workflows/build_image.yml @@ -0,0 +1,36 @@ +name: Build Image +run-name: ${{ gitea.ref }} Build +on: + push: + +jobs: + build-dev-image: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v3 + + - name: Install Docker + run: curl -fsSL https://get.docker.com | sh + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Log into Gitea + uses: docker/login-action@v1 + with: + registry: gitea.shrukanslab.xyz + username: ${{ secrets.ROBOT_USERNAME }} + password: ${{ secrets.ROBOT_PASSWORD }} + + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: . + platforms: linux/amd64 + push: true + tags: | + gitea.shrukanslab.xyz/CppTemplate/dev-environment:latest + + - name: Logout from Docker Registry + run: docker logout gitea.shrukanslab.xyz diff --git a/ci/build-and-test.yml b/ci/build-and-test.yml deleted file mode 100644 index 85df50a..0000000 --- a/ci/build-and-test.yml +++ /dev/null @@ -1,100 +0,0 @@ -resources: -- name: build-image - type: registry-image - icon: docker - source: - repository: gitea.shrukanslab.xyz/sl-devs/meson-build - -- name: cpp-src - type: git - icon: git - source: - uri: ((git-repo-url)) - branch: main - username: ((gitea.username)) - password: ((gitea.password)) - -- name: dev-image - type: registry-image - icon: docker - source: - repository: gitea.shrukanslab.xyz/sl-devs/((image-name)) - tag: latest - username: ((gitea.username)) - password: ((gitea.password)) - -jobs: -- name: unit - plan: - - in_parallel: - - get: build-image - - get: cpp-src - trigger: true - - task: run-test - image: build-image - config: - platform: linux - inputs: - - name: cpp-src - path: "./" - run: - path: make - args: ["test"] - -- name: coverage - plan: - - in_parallel: - - get: build-image - - get: cpp-src - trigger: true - - task: run-test - image: build-image - config: - platform: linux - inputs: - - name: cpp-src - path: "./" - run: - path: make - args: ["coverage"] - -- name: docs - plan: - - in_parallel: - - get: build-image - - get: cpp-src - trigger: true - - task: run-test - image: build-image - config: - platform: linux - inputs: - - name: cpp-src - path: "./" - run: - path: make - args: ["configure", "docs/html"] - -- name: build-image - plan: - - get: cpp-src - - task: build-image - privileged: true # oci-build-task must run in a privileged container - config: - platform: linux - image_resource: - type: registry-image - source: - repository: concourse/oci-build-task - inputs: - - name: cpp-src - outputs: - - name: image - params: - CONTEXT: cpp-src - run: - path: build - - - put: dev-image - params: - image: image/image.tar \ No newline at end of file From f46fa0ba5872b6cb82a54c20e04b2fe8d08ba4e1 Mon Sep 17 00:00:00 2001 From: Shrukan Date: Sat, 17 Feb 2024 15:44:58 -0700 Subject: [PATCH 2/5] Docker no likey casing conventions --- .gitea/workflows/build_and_test.yml | 8 ++++---- .gitea/workflows/build_docs.yml | 2 +- .gitea/workflows/build_image.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/build_and_test.yml b/.gitea/workflows/build_and_test.yml index e59e07b..041b3c6 100644 --- a/.gitea/workflows/build_and_test.yml +++ b/.gitea/workflows/build_and_test.yml @@ -6,7 +6,7 @@ on: jobs: test: runs-on: ubuntu-latest - container: gitea.shrukanslab.xyz/CppTemplate/dev-environment:latest + container: gitea.shrukanslab.xyz/cpp-template/dev-environment:latest steps: - name: Check out repository code uses: actions/checkout@v3 @@ -16,7 +16,7 @@ jobs: coverage: runs-on: ubuntu-latest - container: gitea.shrukanslab.xyz/CppTemplate/dev-environment:latest + container: gitea.shrukanslab.xyz/cpp-template/dev-environment:latest steps: - name: Check out repository code uses: actions/checkout@v3 @@ -36,7 +36,7 @@ jobs: static_analysis: runs-on: ubuntu-latest - container: gitea.shrukanslab.xyz/CppTemplate/dev-environment:latest + container: gitea.shrukanslab.xyz/cpp-template/dev-environment:latest steps: - name: Check out repository code uses: actions/checkout@v3 @@ -46,7 +46,7 @@ jobs: sanitize: runs-on: ubuntu-latest - container: gitea.shrukanslab.xyz/CppTemplate/dev-environment:latest + container: gitea.shrukanslab.xyz/cpp-template/dev-environment:latest steps: - name: Check out repository code uses: actions/checkout@v3 diff --git a/.gitea/workflows/build_docs.yml b/.gitea/workflows/build_docs.yml index 7c779ae..933bee7 100644 --- a/.gitea/workflows/build_docs.yml +++ b/.gitea/workflows/build_docs.yml @@ -6,7 +6,7 @@ on: jobs: build-docs: runs-on: ubuntu-latest - container: gitea.shrukanslab.xyz/CppTemplate/dev-environment:latest + container: gitea.shrukanslab.xyz/cpp-template/dev-environment:latest steps: - name: Check out repository code uses: actions/checkout@v3 diff --git a/.gitea/workflows/build_image.yml b/.gitea/workflows/build_image.yml index a6fbc2b..aff7d01 100644 --- a/.gitea/workflows/build_image.yml +++ b/.gitea/workflows/build_image.yml @@ -30,7 +30,7 @@ jobs: platforms: linux/amd64 push: true tags: | - gitea.shrukanslab.xyz/CppTemplate/dev-environment:latest + gitea.shrukanslab.xyz/cpp-template/dev-environment:latest - name: Logout from Docker Registry run: docker logout gitea.shrukanslab.xyz From eb941197007798e6a38ece232ab59f4dc66a865b Mon Sep 17 00:00:00 2001 From: Shrukan Date: Sat, 17 Feb 2024 15:59:04 -0700 Subject: [PATCH 3/5] Fix container path --- .gitea/workflows/build_and_test.yml | 8 ++++---- .gitea/workflows/build_docs.yml | 2 +- .gitea/workflows/build_image.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/build_and_test.yml b/.gitea/workflows/build_and_test.yml index 041b3c6..5327cea 100644 --- a/.gitea/workflows/build_and_test.yml +++ b/.gitea/workflows/build_and_test.yml @@ -6,7 +6,7 @@ on: jobs: test: runs-on: ubuntu-latest - container: gitea.shrukanslab.xyz/cpp-template/dev-environment:latest + container: gitea.shrukanslab.xyz/sl-devs/cpp-template/dev-environment:latest steps: - name: Check out repository code uses: actions/checkout@v3 @@ -16,7 +16,7 @@ jobs: coverage: runs-on: ubuntu-latest - container: gitea.shrukanslab.xyz/cpp-template/dev-environment:latest + container: gitea.shrukanslab.xyz/sl-devs/cpp-template/dev-environment:latest steps: - name: Check out repository code uses: actions/checkout@v3 @@ -36,7 +36,7 @@ jobs: static_analysis: runs-on: ubuntu-latest - container: gitea.shrukanslab.xyz/cpp-template/dev-environment:latest + container: gitea.shrukanslab.xyz/sl-devs/cpp-template/dev-environment:latest steps: - name: Check out repository code uses: actions/checkout@v3 @@ -46,7 +46,7 @@ jobs: sanitize: runs-on: ubuntu-latest - container: gitea.shrukanslab.xyz/cpp-template/dev-environment:latest + container: gitea.shrukanslab.xyz/sl-devs/cpp-template/dev-environment:latest steps: - name: Check out repository code uses: actions/checkout@v3 diff --git a/.gitea/workflows/build_docs.yml b/.gitea/workflows/build_docs.yml index 933bee7..a6b12c0 100644 --- a/.gitea/workflows/build_docs.yml +++ b/.gitea/workflows/build_docs.yml @@ -6,7 +6,7 @@ on: jobs: build-docs: runs-on: ubuntu-latest - container: gitea.shrukanslab.xyz/cpp-template/dev-environment:latest + container: gitea.shrukanslab.xyz/sl-devs/cpp-template/dev-environment:latest steps: - name: Check out repository code uses: actions/checkout@v3 diff --git a/.gitea/workflows/build_image.yml b/.gitea/workflows/build_image.yml index aff7d01..233d334 100644 --- a/.gitea/workflows/build_image.yml +++ b/.gitea/workflows/build_image.yml @@ -30,7 +30,7 @@ jobs: platforms: linux/amd64 push: true tags: | - gitea.shrukanslab.xyz/cpp-template/dev-environment:latest + gitea.shrukanslab.xyz/sl-devs/cpp-template/dev-environment:latest - name: Logout from Docker Registry run: docker logout gitea.shrukanslab.xyz From 91c537f195404ed95bf80e3d8fa47a27e59cdbd3 Mon Sep 17 00:00:00 2001 From: Shrukan Date: Sat, 17 Feb 2024 16:20:54 -0700 Subject: [PATCH 4/5] Install node in container for actions --- Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile b/Dockerfile index e6aaeb9..913250e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,6 +8,9 @@ RUN pip install --break-system-packages meson gcovr RUN curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/bin +# Install node for actions +RUN curl -fsSL https://deb.nodesource.com/setup_current.x | bash - && apt-get install -y nodejs + # Install latest doxygen RUN wget --progress=bar:force:noscroll https://www.doxygen.nl/files/doxygen-1.10.0.linux.bin.tar.gz && \ tar -xzf doxygen-1.10.0.linux.bin.tar.gz && \ From 6a165bcd515a0c9fcd405e7cdfab0996cb565973 Mon Sep 17 00:00:00 2001 From: Shrukan Date: Sat, 17 Feb 2024 16:31:28 -0700 Subject: [PATCH 5/5] Bump checkout version --- .gitea/workflows/build_and_test.yml | 8 ++++---- .gitea/workflows/build_docs.yml | 2 +- .gitea/workflows/build_image.yml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/build_and_test.yml b/.gitea/workflows/build_and_test.yml index 5327cea..b4d36e8 100644 --- a/.gitea/workflows/build_and_test.yml +++ b/.gitea/workflows/build_and_test.yml @@ -9,7 +9,7 @@ jobs: container: gitea.shrukanslab.xyz/sl-devs/cpp-template/dev-environment:latest steps: - name: Check out repository code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Unit test run: just test @@ -19,7 +19,7 @@ jobs: container: gitea.shrukanslab.xyz/sl-devs/cpp-template/dev-environment:latest steps: - name: Check out repository code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Coverage run: just coverage @@ -39,7 +39,7 @@ jobs: container: gitea.shrukanslab.xyz/sl-devs/cpp-template/dev-environment:latest steps: - name: Check out repository code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Static analysis run: just check @@ -49,7 +49,7 @@ jobs: container: gitea.shrukanslab.xyz/sl-devs/cpp-template/dev-environment:latest steps: - name: Check out repository code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Sanitize run: just sanitize diff --git a/.gitea/workflows/build_docs.yml b/.gitea/workflows/build_docs.yml index a6b12c0..0ac25e2 100644 --- a/.gitea/workflows/build_docs.yml +++ b/.gitea/workflows/build_docs.yml @@ -9,7 +9,7 @@ jobs: container: gitea.shrukanslab.xyz/sl-devs/cpp-template/dev-environment:latest steps: - name: Check out repository code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Build docs run: just docs diff --git a/.gitea/workflows/build_image.yml b/.gitea/workflows/build_image.yml index 233d334..2792231 100644 --- a/.gitea/workflows/build_image.yml +++ b/.gitea/workflows/build_image.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out repository code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Docker run: curl -fsSL https://get.docker.com | sh