name: "Render stack" on: push: pull_request: env: DEBIAN_FRONTEND: noninteractive TZ: UTC DOCKER_HOST: "tcp://docker:2375" DOCKER_TLS_VERIFY: "" jobs: stack-test: runs-on: general container: image: ubuntu:24.04 services: docker: image: docker:dind cmd: - "dockerd" - "-H" # we need this one to offer a docker socket to the job - "tcp://0.0.0.0:2375" - "-H" # we need this one to offer a docker socket on disk - "unix:///var/run/docker.sock" - "--tls=false" steps: # need to setup node and git - run: | apt-get update apt-get install -y nodejs git curl jq age wget wget https://github.com/getsops/sops/releases/download/v3.10.2/sops_3.10.2_amd64.deb dpkg -i sops_3.10.2_amd64.deb rm -f sops_3.10.2_amd64.deb # check out code - uses: actions/checkout@v4 with: submodules: false # setup docker - name: set up docker cli run: | apt-get install -y ca-certificates curl dnsutils install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \ tee /etc/apt/sources.list.d/docker.list > /dev/null apt-get update apt-get install docker-ce-cli docker-buildx-plugin docker-compose-plugin # render stack - name: Render stack run: | ./render-stack.sh env: SOPS_AGE_KEY: ${{ secrets.SOPS_AGE_KEY }} - name: Commit to swarm-cd run: | branchName=deploy-"$(date +%s)" git clone https://"$GIT_USERNAME":"$GIT_PASSWORD"@git.cleverthis.com/hurui200320/deployment-target.git cd deployment-target git checkout -b "$branchName" cp ../compose.prod.yaml ./ git add compose.prod.yaml git commit -m "Release deployment for $branchName" git push -u origin "$branchName" env: GIT_USERNAME: ${{ secrets.GIT_USERNAME }} GIT_PASSWORD: ${{ secrets.GIT_PASSWORD }}