diff --git a/.github/workflows/ci-dev-to-test.yml b/.github/workflows/ci-dev-to-test.yml deleted file mode 100644 index 976caf5..0000000 --- a/.github/workflows/ci-dev-to-test.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: CI Pipeline - Main - -on: - pull_request: - branches: - - main - -jobs: - build: - runs-on: ubuntu-latest - - services: - mysql_prod: - image: mysql:5.7 - env: - MYSQL_DATABASE: dataviz_bytelabss - MYSQL_ROOT_PASSWORD: root - ports: - - 3306:3306 - options: >- - --health-cmd="mysqladmin ping -h localhost --silent" - --health-interval=10s - --health-timeout=5s - --health-retries=3 - - steps: - - - name: Bloquear commits diretos na branch main - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - run: | - echo "Commits diretos na branch 'main' não são permitidos. Desfaça o Commit atual com o comando git reset. - Faça as alterações novamente através de um Pull Request." - exit 1 - - - name: Checkout do código - uses: actions/checkout@v3 - with: - submodules: true - - - name: Configurar JDK 17 - uses: actions/setup-java@v3 - with: - distribution: temurin - java-version: '17' - cache: maven - - - name: Criar usuário e permissões no MySQL - run: | - mysql -h 172.18.0.1 -P 3306 -u root -proot -e "CREATE USER IF NOT EXISTS 'userapp'@'172.18.0.1' IDENTIFIED BY 'admin123';" - mysql -h 172.18.0.1 -P 3306 -u root -proot -e "GRANT SELECT, INSERT, CREATE, REFERENCES, UPDATE, DELETE, DROP ON dataviz_bytelabss.* TO 'userapp'@'172.18.0.1';" - mysql -h 172.18.0.1 -P 3306 -u root -proot -e "FLUSH PRIVILEGES;" - mysql -h 172.18.0.1 -P 3306 -u root -proot -e "CREATE DATABASE IF NOT EXISTS test_db;" - mysql -h 172.18.0.1 -P 3306 -u root -proot -e "GRANT ALL PRIVILEGES ON test_db.* TO 'userapp'@'172.18.0.1'; FLUSH PRIVILEGES;" - - - name: Compilar com Maven - run: mvn clean compile --no-transfer-progress - - - name: Executar testes unitários - run: mvn test --no-transfer-progress diff --git a/.github/workflows/ci-test-to-main.yml b/.github/workflows/ci-test-to-main.yml index 91720ed..976caf5 100644 --- a/.github/workflows/ci-test-to-main.yml +++ b/.github/workflows/ci-test-to-main.yml @@ -1,9 +1,9 @@ -name: CI Pipeline - Teste +name: CI Pipeline - Main on: - push: + pull_request: branches: - 'teste*' + - main jobs: build: @@ -23,21 +23,15 @@ jobs: --health-timeout=5s --health-retries=3 - mysql_test: - image: mysql:5.7 - env: - MYSQL_DATABASE: test_db - MYSQL_ROOT_PASSWORD: root - ports: - - 3307:3306 - options: >- - --health-cmd="mysqladmin ping -h localhost --silent" - --health-interval=10s - --health-timeout=5s - --health-retries=3 - steps: + - name: Bloquear commits diretos na branch main + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + run: | + echo "Commits diretos na branch 'main' não são permitidos. Desfaça o Commit atual com o comando git reset. + Faça as alterações novamente através de um Pull Request." + exit 1 + - name: Checkout do código uses: actions/checkout@v3 with: @@ -50,22 +44,16 @@ jobs: java-version: '17' cache: maven - - name: Criar usuários e permissões no MySQL + - name: Criar usuário e permissões no MySQL run: | - sleep 20 # Aguarda os serviços do MySQL estarem prontos - echo "Configurando permissões no MySQL de produção" - mysql -h 127.0.0.1 -P 3306 -u root -proot -e "CREATE USER IF NOT EXISTS 'userapp'@'%' IDENTIFIED BY 'admin123';" - mysql -h 127.0.0.1 -P 3306 -u root -proot -e "GRANT ALL PRIVILEGES ON dataviz_bytelabss.* TO 'userapp'@'%'; FLUSH PRIVILEGES;" - - echo "Configurando permissões no MySQL de testes" - mysql -h 127.0.0.1 -P 3307 -u root -proot -e "CREATE USER IF NOT EXISTS 'userapp'@'%' IDENTIFIED BY 'admin123';" - mysql -h 127.0.0.1 -P 3307 -u root -proot -e "GRANT ALL PRIVILEGES ON test_db.* TO 'userapp'@'%'; FLUSH PRIVILEGES;" + mysql -h 172.18.0.1 -P 3306 -u root -proot -e "CREATE USER IF NOT EXISTS 'userapp'@'172.18.0.1' IDENTIFIED BY 'admin123';" + mysql -h 172.18.0.1 -P 3306 -u root -proot -e "GRANT SELECT, INSERT, CREATE, REFERENCES, UPDATE, DELETE, DROP ON dataviz_bytelabss.* TO 'userapp'@'172.18.0.1';" + mysql -h 172.18.0.1 -P 3306 -u root -proot -e "FLUSH PRIVILEGES;" + mysql -h 172.18.0.1 -P 3306 -u root -proot -e "CREATE DATABASE IF NOT EXISTS test_db;" + mysql -h 172.18.0.1 -P 3306 -u root -proot -e "GRANT ALL PRIVILEGES ON test_db.* TO 'userapp'@'172.18.0.1'; FLUSH PRIVILEGES;" + - name: Compilar com Maven run: mvn clean compile --no-transfer-progress - name: Executar testes unitários run: mvn test --no-transfer-progress - - - name: Executar testes de integração - run: mvn verify -P integration-tests -DskipUnitTests=false --no-transfer-progress - \ No newline at end of file diff --git a/.github/workflows/ci-test.yml b/.github/workflows/ci-test.yml new file mode 100644 index 0000000..eabd466 --- /dev/null +++ b/.github/workflows/ci-test.yml @@ -0,0 +1,71 @@ +name: CI Pipeline - Teste + +on: + push: + branches: + 'teste*' + +jobs: + build: + runs-on: ubuntu-latest + + services: + mysql_prod: + image: mysql:5.7 + env: + MYSQL_DATABASE: dataviz_bytelabss + MYSQL_ROOT_PASSWORD: root + ports: + - 3306:3306 + options: >- + --health-cmd="mysqladmin ping -h localhost --silent" + --health-interval=10s + --health-timeout=5s + --health-retries=3 + + mysql_test: + image: mysql:5.7 + env: + MYSQL_DATABASE: test_db + MYSQL_ROOT_PASSWORD: root + ports: + - 3307:3306 + options: >- + --health-cmd="mysqladmin ping -h localhost --silent" + --health-interval=10s + --health-timeout=5s + --health-retries=3 + + steps: + + - name: Checkout do código + uses: actions/checkout@v3 + with: + submodules: true + + - name: Configurar JDK 17 + uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: '17' + cache: maven + + - name: Criar usuários e permissões no MySQL + run: | + sleep 20 # Aguarda os serviços do MySQL estarem prontos + echo "Configurando permissões no MySQL de produção" + mysql -h 127.0.0.1 -P 3306 -u root -proot -e "CREATE USER IF NOT EXISTS 'userapp'@'%' IDENTIFIED BY 'admin123';" + mysql -h 127.0.0.1 -P 3306 -u root -proot -e "GRANT ALL PRIVILEGES ON dataviz_bytelabss.* TO 'userapp'@'%'; FLUSH PRIVILEGES;" + + echo "Configurando permissões no MySQL de testes" + mysql -h 127.0.0.1 -P 3307 -u root -proot -e "CREATE USER IF NOT EXISTS 'userapp'@'%' IDENTIFIED BY 'admin123';" + mysql -h 127.0.0.1 -P 3307 -u root -proot -e "GRANT ALL PRIVILEGES ON test_db.* TO 'userapp'@'%'; FLUSH PRIVILEGES;" + - name: Compilar com Maven + run: mvn clean compile --no-transfer-progress + + - name: Executar testes unitários + run: mvn test --no-transfer-progress + + - name: Executar testes de integração + run: mvn verify -P integration-tests -DskipUnitTests=false --no-transfer-progress +