fix: ensure workflow #3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Publish | |
| on: | |
| push: | |
| branches: [ 'main' ] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout do repositório | |
| uses: actions/checkout@v4 | |
| - name: Configurar jdk | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: 21 | |
| distribution: temurin | |
| architecture: x64 | |
| cache: maven | |
| - name: Executa testes com Maven | |
| run: mvn test | |
| - name: Empacota artefato com Maven | |
| run: mvn package -DskipTests | |
| - name: Faz o upload do artefato | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: api-market-place-artifact | |
| path: application/target | |
| publish_to_registry: | |
| needs: [ build ] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| packages: write | |
| contents: read | |
| attestations: write | |
| id-token: write | |
| steps: | |
| - name: Checkout do repositório | |
| uses: actions/checkout@v4 | |
| - name: Download do artefato | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: api-market-place-artifact | |
| - name: Login em Docker Hub | |
| uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a | |
| with: | |
| username: ${{ secrets.DOCKER_USERNAME }} | |
| password: ${{ secrets.DOCKER_PASSWORD }} | |
| - name: Extrai metadata (tags, labels) do Docker | |
| id: meta | |
| uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 | |
| with: | |
| images: hebcodee/api-market-place | |
| - name: Constroi e envia imagem Docker | |
| id: push | |
| uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 | |
| with: | |
| context: . | |
| file: ./Dockerfile | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| - name: Gera atestado da imagem | |
| uses: actions/attest-build-provenance@v2 | |
| with: | |
| subject-name: index.docker.io/hebcodee/api-market-place | |
| subject-digest: ${{ steps.push.outputs.digest }} | |
| push-to-registry: true | |
| integration_tests: | |
| needs: [ publish_to_registry ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout do repositório | |
| uses: actions/checkout@v4 | |
| - name: Configura jdk | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '21' | |
| distribution: 'temurin' | |
| architecture: x64 | |
| cache: maven | |
| - name: Executa testes de integração com Maven | |
| run: mvn test -DintegrationsTests |