name: Build and Release Hugo Website on: push: branches: - main paths: - 'ansible/playbook_websites.yml' - 'bin/hugo_build' - 'websites/**' jobs: build: name: Build Hugo Website runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v3 with: submodules: true fetch-depth: 0 - name: Setup Hugo uses: peaceiris/actions-hugo@v2 with: hugo-version: 'latest' - name: Setup environment id: setup_env uses: ./.github/actions/setup-env - name: Setup Ansible environment uses: ./.github/actions/setup-ansible-env with: project-id: ${{ secrets.BW_PROJECT_ID }} organization-id: ${{ secrets.BW_ORGANIZATION_ID }} access-token: ${{ secrets.BW_ACCESS_TOKEN }} ansible-user: ${{ secrets.ANSIBLE_USER }} trusted-hosts: ${{ secrets.TRUSTED_HOSTS }} - name: Run hugo_build command run: bin/hugo_build - name: Run the playbook to deploy websites env: BW_PROJECT_ID: ${{ secrets.BW_PROJECT_ID }} BW_ORGANIZATION_ID: ${{ secrets.BW_ORGANIZATION_ID }} BW_ACCESS_TOKEN: ${{ secrets.BW_ACCESS_TOKEN }} ANSIBLE_USER: ${{ secrets.ANSIBLE_USER }} SSH_AUTH_SOCK: /tmp/ssh_agent.sock CHANGED_FILES: ${{ steps.setup_env.outputs.CHANGED_FILES }} run: | cd ansible sectool -f ../sectool.json exec ansible-playbook -u $ANSIBLE_USER playbook_websites.yml