Turn this repository into a Nix flake #42
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Go | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
jobs: | |
docker: | |
name: Docker | |
runs-on: ubuntu-22.04 | |
permissions: | |
pull-requests: write | |
contents: read | |
steps: | |
- name: Checkout | |
id: checkout | |
uses: actions/checkout@v4 | |
- name: Verify Docker | |
id: verify_docker | |
run: | | |
docker run --rm hello-world:latest > /dev/null | |
docker rmi hello-world:latest > /dev/null | |
docker version | |
docker compose version | |
- name: Cache docker images | |
uses: ScribeMD/[email protected] | |
with: | |
key: | | |
docker-${{ runner.os }}-${{ hashFiles( | |
'docker-compose*.yml', | |
'docker/**' | |
) }} | |
- name: Fix goup membership | |
id: fix_group | |
run: | | |
# Add the existing `runner` group to avoid the `docker` one | |
sudo adduser runner runner | |
echo "_GID=$(grep -E "^runner:" /etc/group | cut -d: -f3)" >> $GITHUB_ENV | |
- name: Build images | |
id: build_images | |
run: | | |
docker compose build --progress=plain \ | |
--build-arg uid=$(id -u) \ | |
--build-arg gid=${_GID} | |
- name: Go make | |
id: go_make | |
run: | | |
docker compose run go-shell sh -c "make mockdeps && make" | |
- name: Test binary | |
id: test_binary | |
run: | | |
# some basic tests on the binary built earlier | |
echo -n "Test for a static executable... " | |
ldd ./trac2gitea 2>&1 | grep -q 'not a dynamic executable' \ | |
&& echo PASS \ | |
|| { echo FAIL; exit 1; } | |
echo -n "Test for usage prompt on execution... " | |
./trac2gitea --help 2>&1 | grep -q '^Usage' \ | |
&& echo 'PASS' \ | |
|| { echo 'FAIL'; exit 1; } | |
nix: | |
name: Nix | |
runs-on: ubuntu-22.04 | |
permissions: | |
pull-requests: write | |
contents: read | |
strategy: | |
matrix: | |
nix_path: | |
- nixpkgs=channel:nixos-stable | |
- nixpkgs=channel:nixos-unstable | |
steps: | |
- name: Checkout | |
id: checkout | |
uses: actions/checkout@v4 | |
- name: Install Nix | |
id: install_nix | |
uses: cachix/install-nix-action@v27 | |
with: | |
nix_path: ${{ matrix.nix_path }} | |
- name: Check | |
id: check | |
run: | | |
nix flake check | |
- name: Build | |
id: build | |
run: | | |
nix-build |