L'histoire de la transmission de Java à Heroku à l'aide du pipeline BitBucket

Ceci est le premier message. Il peut être difficile de lire le texte, mais merci.

motivation

Je veux déployer automatiquement sur Heroku lorsque je le pousse vers Git. Mais GitHub a été acquis par Microsoft ~~ Si vous ne payez pas, vous pouvez voir des choses que vous ne voulez pas voir car elles sont publiques. BitBucket est privé, il semble donc fonctionner.

** Supposition **

** Essayez-le maintenant **

** Tout d'abord, préparez-vous pour Heroku **

Créez n'importe quel projet depuis Heroku CLI ou depuis l'écran de gestion des applications Web Notez la clé API d'Heroku (vous pouvez la vérifier à partir de l'écran Paramètres du compte)

** Ensuite, créez un référentiel BitBucket **

Notez l'URL avec Repository Create → Git Clone

** Création de projet Java **

Cliquez avec le bouton droit → Nouveau → Créer avec un nouveau projet Spring Starter Le nom du projet créé après cela est SampleProject et le nom de variable dans chaque fichier est également SampleProject. Veuillez le lire comme le nom de votre projet.

SampleProject


├─src/main/java
├─src/main/resources
│ ├─application.properties
├─mvnw
├─mvnw.cmd
└─pom.xml

OK s'il a la structure de package ci-dessus Créez et modifiez des fichiers spécifiques à BitBucket et Heroku à partir d'ici

system.propriétés (nouveau)


java.runtime.version=1.8

Procfile (nouveau)


web: java -jar target/SampleProject-0.0.1jar --server.port=${PORT}

pom.xml(Réparer)


…
	<artifactId>SampleProject</artifactId>
	<version>0.0.1</version>
	<packaging>jar</packaging>
…

Emballage fixe dans pom.xml en pot Confirmez que l'artefactId et le nom de version de pom.xml sont identiques à Procfile

application.properties(Réparer)


Ajout de la description suivante

server.port=${PORT:5000}

bitbucket-pipelines.yml (nouveau)


# This is a sample build configuration for Java (Maven).
# Check our guides at https://confluence.atlassian.com/x/zd-5Mw for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: maven:3.3.9

pipelines:
  default:
    - step:
        caches:
          - maven
        script: # Modify the commands below to build your repository.
          #- mvn -B verify # -B batch mode makes Maven less verbose
          - git push https://heroku:"Clé API Heroku"@git.heroku.com/"Nom du projet Heroku".git HEAD

Description de chaque fichier

system.properties Fichier de configuration requis pour exécuter le projet maven après la construction du côté Heroku Procfile Les fichiers nécessaires pour exécuter le projet du côté Heroku. Décrivez la commande d'exécution À propos, dans le projet maven, lorsque mvn build est exécuté, le fichier de résultat de la construction (jar dans ce cas) est stocké dans le dossier cible directement sous le projet. Vous avez spécifié de le faire pom.xml Changement de l'objectif de mvn build en jar (je pense que la valeur par défaut était la guerre) application.properties Le port du serveur du côté heroku semble être 5000, il est donc décrit comme ceci (tel qu'écrit officiellement) bitbucket-pipelines.yml Utilisez la fonction de pipeline de bitbucket. Lorsqu'il est poussé vers la branche maître de bitbucket, le processus décrit dans yaml est automatiquement exécuté. Ici, java est géré par maven cette fois, donc ① Déclarez le projet maven au début ② Poussez vers la branche projet de heroku faites. Une fois poussé vers heroku, il déterminera automatiquement la langue du projet, le fichier de configuration, etc. et le construira sans autorisation.

Structure finale du dossier (Parce que bitbucket et heroku ne fonctionneront pas sans cette configuration, vérifiez-le)

SampleProject


├─src/main/java
├─src/main/resources
│ ├─application.properties
├─bitbucket-pipelines.yml
├─mvnw
├─mvnw.cmd
├─pom.xml
├─Procfile
├─pom.xml
└─system.properties

** Enfin pousser sur bitbucket **

Lorsque vous le poussez sur bitbucket, ① début du pipeline bitbukcet ② Poussez de bitbukcet vers le référentiel git du côté heroku ③ heroku détermine automatiquement qu'il s'agit d'un projet maven et exécute maven build ④ Démarrez le jar directement sous le dossier cible avec la commande java Il sera déployé sur heroku dans le flux de. Après avoir poussé, vérifiez le journal de l'écran du pipeline de bitbucket et le journal de Heroku pour vous assurer que diverses commandes fonctionnent. Si tout va bien, vous avez terminé.

Une fois que vous avez un pipeline, il sera automatiquement déployé sur heroku chaque fois que vous le poussez vers BitBucekt. C'est la fin.

Recommended Posts

L'histoire de la transmission de Java à Heroku à l'aide du pipeline BitBucket
[Édition Java] Histoire de la sérialisation
20190803_Java & k8s sur Azure L'histoire d'aller au festival
[Apache Tomcat] L'histoire de l'utilisation d'Apache OpenWebBeans pour activer CDI
Sortie du livre "Introduction à Java"
L'histoire de l'écriture de Java dans Emacs
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
[Java] Comment accéder au début d'une chaîne spécifique à l'aide de la classe String
L'histoire de la comparaison de chaînes de bas niveau en Java
L'histoire de l'apprentissage de Java dans la première programmation
L'histoire de l'introduction de la communication Ajax à Ruby
L'histoire de la montée de la série Spring Boot 1.5 à la série 2.1
L'histoire de l'ajout du dernier Node.js à DockerFile
Histoire de l'automatisation des tests avec Appium [Android / java]
Java Bienvenue dans le marais des tableaux bidimensionnels
[Java] Comment obtenir facilement la plus longue chaîne de caractères d'ArrayList à l'aide de stream
[Java] Comment obtenir l'URL de la source de transition
Comment écrire Scala du point de vue de Java
[Java] Comment obtenir la valeur maximale de HashMap
Java: utilisez Stream pour trier le contenu d'une collection
L'histoire de la création de Dr.Orchid avec LINE BOT
L'histoire de la création de DTO, semblable à Dao avec Java, SQLite
L'histoire de la montée de Spring Boot de la série 1.5 à la série 2.1 part2
L'histoire du transfert d'un conteneur Docker vers le registre de packages GitHub et Docker Hub avec des actions GitHub
J'ai essayé de résumer les bases de kotlin et java
Accédez à l'abréviation à partir de 5 exemples de listes Java en italique
Déployez des applications Spring Boot sur Heroku sans utiliser la CLI Heroku
Commande pour vérifier le nombre et l'état des threads Java
[Java] Essayez de modifier les éléments de la chaîne Json à l'aide de la bibliothèque
[Java] Pour connaître les informations de type des paramètres de type à l'exécution
Comment dériver le dernier jour du mois en Java
Assurez-vous de comparer le résultat Java compareTo avec 0
Réintroduction à Java for Humanities 0: Comprendre l'acte de programmation
Comment lire un fichier MIDI à l'aide de l'API Java Sound
Entrée dans la console Java
[Java] Divers résumés joints aux chefs de classe et aux membres
[Java] Essayez de résoudre le problème de Fizz Buzz en utilisant un traitement récursif
L'histoire de ne pas connaître le comportement de String en passant par Java
L'histoire de Collectors.groupingBy que je veux garder pour la postérité
Essayez HelloWorld avec la configuration minimale de Heroku Java spring-boot
[Rails / Heroku / MySQL] Comment réinitialiser la base de données de l'application Rails sur Heroku
Comment obtenir le contenu de la carte à l'aide du mémorandum d'instructions
L'histoire de toString () commençant par le passage d'un tableau à System.out.println
Une histoire sur l'utilisation de l'API League Of Legends avec JAVA
La milliseconde définie dans /lib/calendars.properties de Java jre est UTC
De Java naissant (3 ans) à Node.js (4 ans). Et l'impression de retourner à Java
L'histoire de la création d'un jeu d'Othello de type communication avec Scala.
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
J'ai essayé d'afficher le calendrier sur la console Eclipse en utilisant Java.
Comment vérifier le contenu de la chaîne de caractères java de longueur fixe
La version d'Elasticsearch que vous utilisez est-elle compatible avec Java 11?
Comment obtenir la longueur d'un fichier audio avec Java
Comment incrémenter la valeur de Map sur une ligne en Java
[Java] Supprimer les éléments de la liste
[java8] Pour comprendre l'API Stream
Comparaison Java à l'aide de la méthode compareTo ()
[Java] Entrez dans le stdin du processus