name: Docker Build on: push: branches: - main # Set a branch to deploy env: IMAGE_REGISTRY: ghcr.io IMAGE_OWNER: fluttershub IMAGE_NAME: homepage jobs: Build_x86: runs-on: ubuntu-latest # If running with act, Uncomment below # container: phaze9/action-runner env: DOCKER_CONFIG: $HOME/.docker steps: - uses: actions/checkout@v4 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 - name: Login to ghcr.io uses: docker/login-action@v3 with: registry: ${{ env.IMAGE_REGISTRY }} username: ${{ env.IMAGE_OWNER }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build Docker Image id: docker_build_x64 uses: docker/build-push-action@v6 with: push: true platforms: linux/amd64 labels: org.opencontainers.image.source https://github.com/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }} tags: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:x64-latest Build_ARM64: runs-on: [self-hosted, linux, ARM64] # If running with act, Uncomment below # container: phaze9/action-runner env: DOCKER_CONFIG: $HOME/.docker steps: - uses: actions/checkout@v4 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 - name: Login to ghcr.io uses: docker/login-action@v3 with: registry: ${{ env.IMAGE_REGISTRY }} username: ${{ env.IMAGE_OWNER }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build Docker Image id: docker_build_arm64 uses: docker/build-push-action@v6 with: push: true platforms: linux/arm64 labels: org.opencontainers.image.source https://github.com/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }} tags: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_OWNER }}/${{ env.IMAGE_NAME }}:arm64-latest Deploy: runs-on: ubuntu-latest needs: Build_x86 steps: - uses: actions/checkout@v4 - name: Run Ansible playbook # uses: dawidd6/action-ansible-playbook@v2.5.0 uses: dawidd6/action-ansible-playbook@9d50e1392c06ef7ad5a2e71eb8b97fc2642c7937 with: playbook: playbook.yml directory: ./ key: ${{secrets.DEPLOY_SSH_KEY}} inventory: | [docker] fluttershub.com [docker:vars] ansible_ssh_common_args='-o StrictHostKeyChecking=no' ansible_ssh_user=deploy options: | --verbose # Set to "true" if root is required for running your playbook # sudo: false # optional # Set to "true" if the Ansible output should not include colors (defaults to "false") # no_color: # optional