name: Test Action on: push: branches: - master pull_request: workflow_dispatch: jobs: remote: runs-on: ubuntu-latest env: SSH_PRIVATE_KEY: |- -----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW QyNTUxOQAAACDOZViU5W+blYnk79GYr7IdVOfXRl69cgwmyM3s3jghdgAAAJCwXk9osF5P aAAAAAtzc2gtZWQyNTUxOQAAACDOZViU5W+blYnk79GYr7IdVOfXRl69cgwmyM3s3jghdg AAAEBJXcxT+1llev7YeIFbFLGAO4qv3IMauUfF211JU/uVp85lWJTlb5uVieTv0Zivsh1U 59dGXr1yDCbIzezeOCF2AAAABm5vbmFtZQECAwQFBgc= -----END OPENSSH PRIVATE KEY----- SSH_PUBLIC_KEY: |- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM5lWJTlb5uVieTv0Zivsh1U59dGXr1yDCbIzezeOCF2 noname steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup remote run: | mkdir -p "$HOME/.ssh" echo "$SSH_PUBLIC_KEY" | tee "$HOME/.ssh/authorized_keys" echo "$SSH_PRIVATE_KEY" | tee /tmp/key chmod 600 /tmp/key chmod 600 "$HOME/.ssh/authorized_keys" echo 'SSH_KNOWN_HOSTS<> $GITHUB_ENV echo $(ssh-keyscan localhost 2>/dev/null) >> $GITHUB_ENV echo 'EOF' >> $GITHUB_ENV ssh -i /tmp/key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no localhost whoami - name: With everything uses: ./ with: playbook: playbook.yml key: ${{env.SSH_PRIVATE_KEY}} known_hosts: ${{env.SSH_KNOWN_HOSTS}} directory: test configuration: | [defaults] callbacks_enabled = ansible.posix.profile_tasks, ansible.posix.timer stdout_callback = yaml nocows = false vault_password: test requirements: requirements.yml inventory: | [all] localhost options: | -vvv -e docker_image=docker_url -e docker_username=user -e docker_password=pass -e db_name=db_name -e db_user=db_user -e db_pass=db_pass local: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: With check mode uses: ./ with: playbook: playbook.yml directory: test check_mode: true options: --inventory hosts - name: With custom ansible.cfg uses: ./ with: playbook: playbook.yml directory: test configuration: | [defaults] callbacks_enabled = ansible.posix.profile_tasks, ansible.posix.timer stdout_callback = yaml nocows = false options: --inventory hosts - name: With requirements uses: ./ with: playbook: playbook.yml directory: test requirements: requirements.yml options: --inventory hosts - name: With requirements bundle uses: ./ with: playbook: playbook.yml directory: test requirements: requirements-bundle.yml options: --inventory hosts - name: With vault password uses: ./ with: playbook: playbook.yml directory: test vault_password: test options: --inventory hosts - name: With sudo uses: ./ with: playbook: playbook.yml directory: test sudo: true options: --inventory hosts