diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b13122b2..d3051dc0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,66 +1,61 @@ --- -name: Molecule tests for Wazuh Ansible -on: [pull_request, workflow_dispatch, release] - +name: do-the-job +on: [push, pull_request, workflow_dispatch, release] jobs: - - scenario-default: - name: Default scenario (smoke) + start-runner: + name: Start self-hosted EC2 runner runs-on: ubuntu-latest + outputs: + label: ${{ steps.start-ec2-runner.outputs.label }} + ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} steps: - - name: Check out the codebase. - uses: actions/checkout@v2 - - - name: Hack to get setup-python to work on act. See act issue 251 - run: | - # Hack to get setup-python to work on act - if [ ! -f "/etc/lsb-release" ] ; then - echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release - fi - - - name: Set up Python 3. - uses: actions/setup-python@v2 + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 with: - python-version: '3.x' - - - name: Install poetry - run: pip3 install poetry - - - name: Install dependencies - run: poetry install - - - name: Run Molecule tests. - run: poetry run molecule test -s default - env: - PY_COLORS: '1' - ANSIBLE_FORCE_COLOR: '1' - - scenario-distributed-wazuh: - name: Distributed Wazuh + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Start EC2 runner + id: start-ec2-runner + uses: machulav/ec2-github-runner@v2 + with: + mode: start + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + ec2-image-id: ami-123 + ec2-instance-type: t3.nano + subnet-id: subnet-123 + security-group-id: sg-123 + iam-role-name: my-role-name # optional, requires additional permissions + aws-resource-tags: > # optional, requires additional permissions + [ + {"Key": "Name", "Value": "ec2-github-runner"}, + {"Key": "GitHubRepository", "Value": "${{ github.repository }}"} + ] + do-the-job: + name: Do the job on the runner + needs: start-runner # required to start the main job when the runner is ready + runs-on: ${{ needs.start-runner.outputs.label }} # run the job on the newly created runner + steps: + - name: Hello World + run: echo 'Hello World!' + stop-runner: + name: Stop self-hosted EC2 runner + needs: + - start-runner # required to get output from the start-runner job + - do-the-job # required to wait when the main job is done runs-on: ubuntu-latest + if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs steps: - - name: Check out the codebase. - uses: actions/checkout@v2 - - - name: Hack to get setup-python to work on act. See act issue 251 - run: | - if [ ! -f "/etc/lsb-release" ] ; then - echo "DISTRIB_RELEASE=18.04" > /etc/lsb-release - fi - - - name: Set up Python 3. - uses: actions/setup-python@v2 + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 with: - python-version: '3.x' - - - name: Install poetry - run: pip3 install poetry - - - name: Install dependencies - run: poetry install - - - name: Run Molecule tests. - run: poetry run molecule test -s distributed-wazuh - env: - PY_COLORS: '1' - ANSIBLE_FORCE_COLOR: '1' + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Stop EC2 runner + uses: machulav/ec2-github-runner@v2 + with: + mode: stop + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + label: ${{ needs.start-runner.outputs.label }} + ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} \ No newline at end of file