diff --git a/.github/workflows/.woodpecker.yaml b/.github/workflows/.woodpecker.yaml new file mode 100644 index 0000000..d08a018 --- /dev/null +++ b/.github/workflows/.woodpecker.yaml @@ -0,0 +1,46 @@ +pipeline: + build-and-push: + image: plugins/docker + settings: + dockerfile: AobaServer/Dockerfile + context: . + repo: git.kaisei.app/amatsugu/aoba + tags: latest + username: + from_secret: docker_user + password: + from_secret: docker_pass + + deploy: + image: appleboy/ssh + settings: + host: your-app-host.internal + username: deploy + key: + from_secret: ssh_key + port: 22 + script: + - docker pull git.kaisei.app/amatsugu/aoba:latest + + # Run temporary container on docker network, no port binding + - docker run -d --rm \ + --name aoba-temp \ + --network aoba-net \ + git.kaisei.app/amatsugu/aoba:latest + + # Wait for it to become healthy + - sleep 3 + - curl -f http://aoba-temp:8080 --connect-timeout 2 || (echo "Health check failed" && docker stop aoba-temp && exit 1) + + # Stop old container (bound to host port) + - docker stop aoba || true + + # Start new container on network and bind to host port 8080 + - docker run -d --rm \ + --name aoba \ + --network aoba-net \ + -p 9432:8080 \ + git.kaisei.app/amatsugu/aoba:latest + + # Stop temp container + - docker stop aoba-temp || true diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 324b6fb..dd9921d 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,37 +1,39 @@ name: "Build and Push Image" on: - push: - tags: - - "v*" + push: + tags: + - "v*" jobs: - build-and-push: - runs-on: ubuntu-latest + build-and-push: + runs-on: ubuntu-latest - steps: - - name: Checkou code - uses: actions/checkout@v4 - - - name: Set up Docker Build - uses: docker/setup-buildx-action@v3 + steps: + - name: Checkou code + uses: actions/checkout@v4 - - name: Login - uses: docker/login-action@v3 - with: - registry: git.kaisei.app - username: ${{ secrets.DOCKER_USER }} - password: ${{ secrets.DOCKER_PASS }} + - name: Set up Docker Build + uses: docker/setup-buildx-action@v3 - - name: Extract tag version - id: extract_tag - run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV + - name: Login + uses: docker/login-action@v3 + with: + registry: git.kaisei.app + username: ${{ secrets.DOCKER_USER }} + password: ${{ secrets.DOCKER_PASS }} - - name: Build and Push - uses: docker/build-push-action@v5 - with: - file: AobaServer/Dockerfile - context: . - push: true - tags: git.kaisei.app/amatsugu/aoba:${{ env.VERSION }} - build-args: VERSION=${{ env.VERSION }} + - name: Extract tag version + id: extract_tag + run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV + + - name: Build and Push + uses: docker/build-push-action@v5 + with: + file: AobaServer/Dockerfile + context: . + push: true + tags: | + git.kaisei.app/amatsugu/aoba:${{ env.VERSION }} + git.kaisei.app/amatsugu/aoba:latest + build-args: VERSION=${{ env.VERSION }}