diff --git a/.forgejo/workflows/dev.yaml b/.forgejo/workflows/dev.yaml index 1030f4a..508d56f 100644 --- a/.forgejo/workflows/dev.yaml +++ b/.forgejo/workflows/dev.yaml @@ -11,7 +11,7 @@ concurrency: jobs: build-and-deploy: - runs-on: self-hosted # label van jouw Forgejo-runner + runs-on: dev # jouw dev-runner (test-server) env: # 10.0.20.22:3000 - host van je Forgejo (= container registry host) REGISTRY: ${{ vars.REGISTRY }} @@ -40,18 +40,12 @@ jobs: docker push "${{ steps.meta.outputs.sha_tag }}" docker push "${{ steps.meta.outputs.dev_tag }}" + # Deploy via gewone ssh (geen externe action nodig). - name: Deploy naar test-VM - uses: appleboy/ssh-action@v1 - with: - host: ${{ secrets.TEST_HOST }} - username: ${{ secrets.TEST_USER }} - key: ${{ secrets.TEST_SSH_KEY }} - script: | - set -e - cd ${{ secrets.TEST_DEPLOY_PATH }} - echo "${{ secrets.REGISTRY_TOKEN }}" | docker login ${{ vars.REGISTRY }} -u "${{ secrets.REGISTRY_USER }}" --password-stdin - # Zet de te draaien image-tag in de env van de VM - sed -i "s|^IMAGE=.*|IMAGE=${{ steps.meta.outputs.dev_tag }}|" .env - docker compose -f compose.deploy.yaml pull - docker compose -f compose.deploy.yaml up -d - docker image prune -f + run: | + echo "${{ secrets.TEST_SSH_KEY }}" > deploy_key + chmod 600 deploy_key + ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \ + -i deploy_key ${{ secrets.TEST_USER }}@${{ secrets.TEST_HOST }} \ + "set -e && cd ${{ secrets.TEST_DEPLOY_PATH }} && echo '${{ secrets.REGISTRY_TOKEN }}' | docker login ${{ vars.REGISTRY }} -u '${{ secrets.REGISTRY_USER }}' --password-stdin && sed -i 's|^IMAGE=.*|IMAGE=${{ steps.meta.outputs.dev_tag }}|' .env && docker compose -f compose.deploy.yaml pull && docker compose -f compose.deploy.yaml up -d && docker image prune -f" + rm -f deploy_key diff --git a/.forgejo/workflows/release.yaml b/.forgejo/workflows/release.yaml index aa79da7..a0576af 100644 --- a/.forgejo/workflows/release.yaml +++ b/.forgejo/workflows/release.yaml @@ -12,7 +12,7 @@ concurrency: jobs: build-and-deploy: - runs-on: self-hosted # label van jouw Forgejo-runner + runs-on: prod # jouw prod-runner (productieserver) env: REGISTRY: ${{ vars.REGISTRY }} IMAGE_NAME: ${{ github.repository }} # bes-r/teach @@ -40,17 +40,12 @@ jobs: docker push "${{ steps.meta.outputs.version_tag }}" docker push "${{ steps.meta.outputs.latest_tag }}" + # Deploy via gewone ssh (geen externe action nodig). - name: Deploy naar productie-VM - uses: appleboy/ssh-action@v1 - with: - host: ${{ secrets.PROD_HOST }} - username: ${{ secrets.PROD_USER }} - key: ${{ secrets.PROD_SSH_KEY }} - script: | - set -e - cd ${{ secrets.PROD_DEPLOY_PATH }} - echo "${{ secrets.REGISTRY_TOKEN }}" | docker login ${{ vars.REGISTRY }} -u "${{ secrets.REGISTRY_USER }}" --password-stdin - sed -i "s|^IMAGE=.*|IMAGE=${{ steps.meta.outputs.version_tag }}|" .env - docker compose -f compose.deploy.yaml pull - docker compose -f compose.deploy.yaml up -d - docker image prune -f + run: | + echo "${{ secrets.PROD_SSH_KEY }}" > deploy_key + chmod 600 deploy_key + ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \ + -i deploy_key ${{ secrets.PROD_USER }}@${{ secrets.PROD_HOST }} \ + "set -e && cd ${{ secrets.PROD_DEPLOY_PATH }} && echo '${{ secrets.REGISTRY_TOKEN }}' | docker login ${{ vars.REGISTRY }} -u '${{ secrets.REGISTRY_USER }}' --password-stdin && sed -i 's|^IMAGE=.*|IMAGE=${{ steps.meta.outputs.version_tag }}|' .env && docker compose -f compose.deploy.yaml pull && docker compose -f compose.deploy.yaml up -d && docker image prune -f" + rm -f deploy_key