name: CI/CD Pipeline on: push: branches: [main] workflow_dispatch: jobs: build: runs-on: home-server steps: - name: Checkout code uses: actions/checkout@v4 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: test run: | cd backend nix-shell -p elixir elixir-ls --run ' MIX_ENV=test mix deps.get --only test MIX_ENV=test mix test ' - name: Build and push backend image run: | cd client docker build -t alexmickelson/elixir-demo-frontend:$GITHUB_RUN_NUMBER . docker push alexmickelson/elixir-demo-frontend:$GITHUB_RUN_NUMBER cd ../backend docker build -t alexmickelson/elixir-demo-backend:$GITHUB_RUN_NUMBER . docker push alexmickelson/elixir-demo-backend:$GITHUB_RUN_NUMBER # - name: Deploy to Kubernetes # run: | # kubectl apply -f kubernetes/namespace.yml # kubectl get secret backend-secret --namespace alex-elixir-demo || \ # kubectl create secret generic backend-secret \ # --namespace alex-elixir-demo \ # --from-literal=cookie=$(openssl rand -hex 32) # for file in kubernetes/*.yml; do # cat "$file" | envsubst | kubectl apply -f - # done