Skip to content

Commit ea599a6

Browse files
committed
refactor: revert CI to separate jobs
1 parent 292ff3b commit ea599a6

1 file changed

Lines changed: 41 additions & 10 deletions

File tree

.github/workflows/ci.yml

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,61 @@
1+
---
12
name: CI/CD for Nix Dotfiles
23

34
on:
45
push:
56
branches:
6-
- main # Or your default branch
7+
- main
78
pull_request:
89
branches:
910
- main
1011

1112
jobs:
12-
test-dotfiles:
13+
build-docker-image:
1314
runs-on: ubuntu-latest
15+
outputs:
16+
image_name: ${{ steps.build.outputs.image_name }}
1417
steps:
1518
- name: Check out repository
1619
uses: actions/checkout@v4
1720

1821
- name: Build Docker image
19-
run: docker build -t nix-test-env -f ./nix_test_env/Dockerfile .
22+
id: build
23+
run: |
24+
IMAGE_NAME="nix-test-env:$(git rev-parse --short HEAD)"
25+
docker build -t ${IMAGE_NAME} -f ./nix_test_env/Dockerfile .
26+
echo "image_name=${IMAGE_NAME}" >> $GITHUB_OUTPUT
27+
28+
tests:
29+
runs-on: ubuntu-latest
30+
needs: build-docker-image
31+
steps:
32+
- name: Check out repository
33+
uses: actions/checkout@v4
2034

21-
- name: Run tests in container
35+
- name: Pull Docker image (if not cached)
36+
run: docker pull ${{ needs.build-docker-image.outputs.image_name }} \
37+
|| true
38+
39+
- name: Run container
40+
run: |
41+
CONTAINER_NAME="nix-test-container-git"
42+
IMAGE_NAME="${{ needs.build-docker-image.outputs.image_name }}"
43+
docker run --name ${CONTAINER_NAME} -d ${IMAGE_NAME} tail -f /dev/null
44+
45+
- name: Run Git config test in container
2246
run: |
23-
docker run --name nix-test-container -d nix-test-env tail -f /dev/null
24-
docker exec nix-test-container home-manager switch
25-
docker exec nix-test-container bash -lc "git config --global user.name | grep 'PedroBrantes'"
26-
docker exec nix-test-container bash -lc "printenv EDITOR | grep 'nvim'"
47+
docker exec ${CONTAINER_NAME} home-manager switch
48+
docker exec ${CONTAINER_NAME} bash -c \
49+
"source /root/.nix-profile/etc/profile.d/nix.sh && \
50+
git config --global user.name | grep 'PedroBrantes'"
51+
52+
- name: Run Editor env test in container
53+
run: |
54+
docker exec ${CONTAINER_NAME} home-manager switch
55+
docker exec ${CONTAINER_NAME} bash -c \
56+
"source /root/.nix-profile/etc/profile.d/nix.sh && \
57+
printenv EDITOR | grep 'nvim'"
2758
2859
- name: Clean up container
29-
if: always()
30-
run: docker rm -f nix-test-container
60+
run: |
61+
docker rm -f ${CONTAINER_NAME} # Clean up after test

0 commit comments

Comments
 (0)