name: Restart Runners on: schedule: - cron: '0 0 */7 * *' permissions: id-token: write contents: read jobs: ec2-maintenance-prod: runs-on: ubuntu-latest permissions: write-all steps: - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v5 with: role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/${{ secrets.AWS_ROLE_NAME }} role-duration-seconds: 3600 aws-region: ${{ secrets.AWS_REGION }} - name: Verify AWS identity run: aws sts get-caller-identity - name: Start EC2 instance run: | aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }} aws ec2 start-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }} echo "EC2 instances started" - name: Wait run: sleep 600 - name: Stop EC2 instance run: | aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_ARM_RUNNER }} aws ec2 stop-instances --instance-ids ${{ secrets.EC2_INSTANCE_ID_AMD_RUNNER }} echo "EC2 instances stopped"