Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Automação e Deploy com Phing

Automação e Deploy com Phing

Perdemos muito tempo com tarefas repetitivas e cansativas durante o desenvolvimento de uma aplicação.
Nesta palestra irei apresentar o Phing, uma ferramenta que auxiliará você na automação de tarefas.

Hussani Oliveira

July 13, 2013
Tweet

More Decks by Hussani Oliveira

Other Decks in Programming

Transcript

  1. AUTOMAÇÃO E DEPLOY
    COM PHING
    Por /
    Hussani Oliveira @hussanii

    View Slide

  2. QUEM SOU?

    View Slide

  3. HUSSANI OLIVEIRA
    Desenvolvedor desde 2010
    Graduado em ADS pela FIT
    PHPSP

    View Slide

  4. PHING: O QUE É?
    PHing Is Not GNU Make
    É uma ferramenta de Build
    Baseada no Apache Ant
    Multi Plataforma

    View Slide

  5. BUILD?
    "Build" é o ato de criação de scripts ou automatização de uma
    grande variedade de tarefas que os desenvolvedores de software
    realizam em suas atividades do dia-a-dia.

    View Slide

  6. TAREFAS (COMUNS) DE BUILD
    Compilação
    Empacotamento
    Testes
    Deploy
    Documentação

    View Slide

  7. Fonte:
    http://pt.wikipedia.org/wiki/Automação_de_compilação

    View Slide

  8. POR QUE USAR UMA FERRAMENTA DE BUILD?

    View Slide

  9. Repetição

    View Slide

  10. Testes
    DB Migrations
    Documentação
    Upload
    Versionamento
    Configuração
    ...

    View Slide

  11. Automação

    View Slide

  12. ALTERNATIVAS
    Ant
    Make
    Maven
    Rake

    View Slide

  13. POR QUE PHING?
    Integração com ferramentas PHP
    Poucas dependências (Java)
    Facilmente extensível

    View Slide

  14. O BÁSICO

    View Slide

  15. INSTALAÇÃO
    p
    e
    a
    r c
    h
    a
    n
    n
    e
    l
    -
    d
    i
    s
    c
    o
    v
    e
    r p
    e
    a
    r
    .
    p
    h
    i
    n
    g
    .
    i
    n
    f
    o
    p
    e
    a
    r i
    n
    s
    t
    a
    l
    l p
    h
    i
    n
    g
    /
    p
    h
    i
    n
    g
    {
    "
    r
    e
    q
    u
    i
    r
    e
    "
    : {
    "
    p
    h
    i
    n
    g
    /
    p
    h
    i
    n
    g
    "
    : "
    d
    e
    v
    -
    m
    a
    s
    t
    e
    r
    "
    }
    }

    View Slide

  16. ARQUIVO DE BUILD
    Task: pedaço de código para um função específica
    Target: grupo de tasks para uma determinada função. Pode
    depender de outros targets
    Project: nó raiz que contém um ou mais targets
    Por padrão build.xml

    View Slide

  17. EXEMPLO
    <
    !
    -
    - h
    e
    l
    l
    o
    .
    x
    m
    l -
    -
    >
    <
    p
    r
    o
    j
    e
    c
    t n
    a
    m
    e
    =
    "
    E
    x
    e
    m
    p
    l
    o
    " d
    e
    f
    a
    u
    l
    t
    =
    "
    w
    o
    r
    l
    d
    "
    >
    <
    t
    a
    r
    g
    e
    t n
    a
    m
    e
    =
    "
    h
    e
    l
    l
    o
    "
    >
    <
    e
    c
    h
    o
    >
    H
    e
    l
    l
    o
    <
    /
    e
    c
    h
    o
    >
    <
    /
    t
    a
    r
    g
    e
    t
    >
    <
    t
    a
    r
    g
    e
    t n
    a
    m
    e
    =
    "
    w
    o
    r
    l
    d
    " d
    e
    p
    e
    n
    d
    s
    =
    "
    h
    e
    l
    l
    o
    "
    >
    <
    e
    c
    h
    o
    >
    W
    o
    r
    l
    d
    !
    <
    /
    e
    c
    h
    o
    >
    <
    /
    t
    a
    r
    g
    e
    t
    >
    <
    /
    p
    r
    o
    j
    e
    c
    t
    >

    View Slide

  18. EXEMPLO
    p
    h
    i
    n
    g -
    f h
    e
    l
    l
    o
    .
    x
    m
    l
    B
    u
    i
    l
    d
    f
    i
    l
    e
    : /
    h
    o
    m
    e
    /
    h
    u
    s
    s
    a
    n
    i
    /
    g
    i
    t
    h
    u
    b
    /
    t
    a
    l
    k
    s
    /
    p
    h
    i
    n
    g
    /
    e
    x
    e
    m
    p
    l
    o
    s
    /
    h
    e
    l
    l
    o
    .
    x
    m
    l
    E
    x
    e
    m
    p
    l
    o > h
    e
    l
    l
    o
    :
    [
    e
    c
    h
    o
    ] H
    e
    l
    l
    o
    E
    x
    e
    m
    p
    l
    o > w
    o
    r
    l
    d
    :
    [
    e
    c
    h
    o
    ] W
    o
    r
    l
    d
    !
    B
    U
    I
    L
    D F
    I
    N
    I
    S
    H
    E
    D

    View Slide

  19. DEPLOY AUTOMATIZADO

    View Slide

  20. BUILD.PROPERTIES
    s
    s
    h
    .
    h
    o
    s
    t
    =
    1
    2
    7
    .
    0
    .
    0
    .
    1
    s
    s
    h
    .
    u
    s
    e
    r
    =
    m
    y
    u
    s
    e
    r
    s
    s
    h
    .
    p
    a
    s
    s
    w
    d
    =
    m
    y
    p
    4
    s
    $
    s
    s
    h
    .
    b
    a
    s
    e
    d
    i
    r
    =
    r
    e
    m
    o
    t
    e
    D
    i
    r

    View Slide

  21. BUILD.XML
    <
    !
    -
    -
    ?
    x
    m
    l v
    e
    r
    s
    i
    o
    n
    =
    "
    1
    .
    0
    " ?
    -
    -
    >
    <
    p
    r
    o
    j
    e
    c
    t n
    a
    m
    e
    =
    "
    D
    e
    p
    l
    o
    y m
    y A
    p
    p
    " b
    a
    s
    e
    d
    i
    r
    =
    "
    .
    " d
    e
    f
    a
    u
    l
    t
    =
    "
    d
    e
    p
    l
    o
    y
    "
    >
    <
    !
    -
    - P
    a
    r
    a
    m
    e
    t
    r
    o
    s d
    o s
    e
    r
    v
    i
    d
    o
    r -
    -
    >
    <
    p
    r
    o
    p
    e
    r
    t
    y f
    i
    l
    e
    =
    "
    b
    u
    i
    l
    d
    .
    p
    r
    o
    p
    e
    r
    t
    i
    e
    s
    "
    >
    <
    /
    p
    r
    o
    p
    e
    r
    t
    y
    >
    .
    .
    .
    <
    /
    p
    r
    o
    j
    e
    c
    t
    >

    View Slide

  22. BUILD.XML
    <
    !
    -
    - D
    e
    f
    i
    n
    i
    ç
    ã
    o d
    e g
    r
    u
    p
    o
    s d
    e a
    r
    q
    u
    i
    v
    o -
    -
    >
    <
    f
    i
    l
    e
    s
    e
    t i
    d
    =
    "
    3
    p
    a
    r
    t
    y
    -
    f
    i
    l
    e
    s
    " d
    i
    r
    =
    "
    .
    "
    >
    <
    i
    n
    c
    l
    u
    d
    e n
    a
    m
    e
    =
    "
    v
    e
    n
    d
    o
    r
    /
    *
    *
    "
    >
    <
    e
    x
    c
    l
    u
    d
    e n
    a
    m
    e
    =
    "
    v
    e
    n
    d
    o
    r
    /
    b
    i
    n
    /
    p
    h
    i
    n
    g
    "
    >
    <
    e
    x
    c
    l
    u
    d
    e n
    a
    m
    e
    =
    "
    v
    e
    n
    d
    o
    r
    /
    p
    h
    i
    n
    g
    /
    *
    *
    "
    >
    <
    /
    e
    x
    c
    l
    u
    d
    e
    >
    <
    /
    e
    x
    c
    l
    u
    d
    e
    >
    <
    /
    i
    n
    c
    l
    u
    d
    e
    >
    <
    /
    f
    i
    l
    e
    s
    e
    t
    >

    View Slide

  23. BUILD.XML
    <
    !
    -
    - A
    ç
    ã
    o d
    e d
    e
    p
    l
    o
    y -
    -
    >
    <
    t
    a
    r
    g
    e
    t n
    a
    m
    e
    =
    "
    c
    o
    p
    y
    "
    >
    <
    e
    c
    h
    o m
    e
    s
    s
    a
    g
    e
    =
    "
    C
    o
    p
    i
    a
    n
    d
    o g
    r
    u
    p
    o d
    e a
    r
    q
    u
    i
    v
    o
    s $
    {
    d
    e
    p
    l
    o
    y
    .
    f
    i
    l
    e
    s
    e
    t
    }
    p
    a
    r
    a $
    {
    s
    s
    h
    .
    u
    s
    e
    r
    }
    @
    $
    {
    s
    s
    h
    .
    h
    o
    s
    t
    }
    :
    $
    {
    s
    s
    h
    .
    b
    a
    s
    e
    d
    i
    r
    }
    /
    "
    >
    <
    s
    c
    p u
    s
    e
    r
    n
    a
    m
    e
    =
    "
    $
    {
    s
    s
    h
    .
    u
    s
    e
    r
    }
    " p
    a
    s
    s
    w
    o
    r
    d
    =
    "
    $
    {
    s
    s
    h
    .
    p
    a
    s
    s
    w
    d
    }
    " h
    o
    s
    t
    =
    "
    $
    {
    s
    s
    h
    .
    h
    o
    s
    t
    }
    " t
    o
    d
    i
    r
    =
    "
    $
    {
    s
    s
    h
    .
    b
    a
    s
    e
    d
    i
    r
    }
    "
    >
    <
    f
    i
    l
    e
    s
    e
    t r
    e
    f
    i
    d
    =
    "
    $
    {
    d
    e
    p
    l
    o
    y
    .
    f
    i
    l
    e
    s
    e
    t
    }
    "
    >
    <
    /
    f
    i
    l
    e
    s
    e
    t
    >
    <
    /
    s
    c
    p
    >
    <
    /
    e
    c
    h
    o
    >
    <
    /
    t
    a
    r
    g
    e
    t
    >

    View Slide

  24. BUILD.XML
    <
    !
    -
    - D
    e
    p
    l
    o
    y d
    o v
    e
    n
    d
    o
    r -
    -
    >
    <
    t
    a
    r
    g
    e
    t n
    a
    m
    e
    =
    "
    d
    e
    p
    l
    o
    y
    -
    3
    p
    a
    r
    t
    y
    "
    >
    <
    p
    h
    i
    n
    g
    c
    a
    l
    l t
    a
    r
    g
    e
    t
    =
    "
    c
    o
    p
    y
    "
    >
    <
    p
    r
    o
    p
    e
    r
    t
    y n
    a
    m
    e
    =
    "
    d
    e
    p
    l
    o
    y
    .
    f
    i
    l
    e
    s
    e
    t
    " v
    a
    l
    u
    e
    =
    "
    3
    p
    a
    r
    t
    y
    -
    f
    i
    l
    e
    s
    "
    >
    <
    /
    p
    r
    o
    p
    e
    r
    t
    y
    >
    <
    /
    p
    h
    i
    n
    g
    c
    a
    l
    l
    >
    <
    /
    t
    a
    r
    g
    e
    t
    >

    View Slide

  25. BUILD.XML
    <
    !
    -
    - D
    e
    p
    l
    o
    y c
    o
    m
    p
    l
    e
    t
    o -
    -
    >
    <
    t
    a
    r
    g
    e
    t n
    a
    m
    e
    =
    "
    d
    e
    p
    l
    o
    y
    "
    >
    <
    p
    h
    i
    n
    g
    c
    a
    l
    l t
    a
    r
    g
    e
    t
    =
    "
    d
    e
    p
    l
    o
    y
    -
    3
    p
    a
    r
    t
    y
    "
    >
    <
    p
    h
    i
    n
    g
    c
    a
    l
    l t
    a
    r
    g
    e
    t
    =
    "
    d
    e
    p
    l
    o
    y
    -
    s
    o
    u
    r
    c
    e
    "
    >
    <
    p
    h
    i
    n
    g
    c
    a
    l
    l t
    a
    r
    g
    e
    t
    =
    "
    d
    e
    p
    l
    o
    y
    -
    w
    e
    b
    "
    >
    <
    /
    p
    h
    i
    n
    g
    c
    a
    l
    l
    >
    <
    /
    p
    h
    i
    n
    g
    c
    a
    l
    l
    >
    <
    /
    p
    h
    i
    n
    g
    c
    a
    l
    l
    >
    <
    /
    t
    a
    r
    g
    e
    t
    >

    View Slide

  26. EXECUTANDO
    p
    h
    i
    n
    g
    B
    u
    i
    l
    d
    f
    i
    l
    e
    : /
    h
    o
    m
    e
    /
    h
    u
    s
    s
    a
    n
    i
    /
    g
    i
    t
    h
    u
    b
    /
    t
    a
    l
    k
    s
    /
    p
    h
    i
    n
    g
    /
    e
    x
    e
    m
    p
    l
    o
    s
    /
    s
    i
    m
    p
    l
    e
    _
    d
    e
    p
    l
    o
    y
    /
    b
    u
    i
    l
    d
    .
    x
    m
    l
    [
    p
    r
    o
    p
    e
    r
    t
    y
    ] L
    o
    a
    d
    i
    n
    g /
    h
    o
    m
    e
    /
    h
    u
    s
    s
    a
    n
    i
    /
    g
    i
    t
    h
    u
    b
    /
    t
    a
    l
    k
    s
    /
    p
    h
    i
    n
    g
    /
    e
    x
    e
    m
    p
    l
    o
    s
    /
    s
    i
    m
    p
    l
    e
    _
    d
    e
    p
    l
    o
    y
    /
    b
    u
    i
    l
    d
    .
    p
    D
    e
    p
    l
    o
    y m
    y A
    p
    p > d
    e
    p
    l
    o
    y
    :
    D
    e
    p
    l
    o
    y m
    y A
    p
    p > d
    e
    p
    l
    o
    y
    -
    3
    p
    a
    r
    t
    y
    :
    D
    e
    p
    l
    o
    y m
    y A
    p
    p > c
    o
    p
    y
    :
    [
    e
    c
    h
    o
    ] C
    o
    p
    y
    i
    n
    g 3
    p
    a
    r
    t
    y
    -
    f
    i
    l
    e
    s t
    o h
    u
    s
    s
    a
    n
    i
    @
    1
    2
    7
    .
    0
    .
    0
    .
    1
    :
    p
    h
    i
    n
    g
    [
    s
    c
    p
    ] C
    o
    p
    i
    e
    d 6
    8 f
    i
    l
    e
    (
    s
    ) t
    o '
    1
    2
    7
    .
    0
    .
    0
    .
    1
    '
    [
    p
    h
    i
    n
    g
    c
    a
    l
    l
    ] C
    a
    l
    l
    i
    n
    g B
    u
    i
    l
    d
    f
    i
    l
    e '
    /
    h
    o
    m
    e
    /
    h
    u
    s
    s
    a
    n
    i
    /
    g
    i
    t
    h
    u
    b
    /
    t
    a
    l
    k
    s
    /
    p
    h
    i
    n
    g
    /
    e
    x
    e
    m
    p
    l
    o
    s
    /
    s
    i
    m
    p
    l
    e
    _
    d
    e
    p
    [
    p
    r
    o
    p
    e
    r
    t
    y
    ] L
    o
    a
    d
    i
    n
    g /
    h
    o
    m
    e
    /
    h
    u
    s
    s
    a
    n
    i
    /
    g
    i
    t
    h
    u
    b
    /
    t
    a
    l
    k
    s
    /
    p
    h
    i
    n
    g
    /
    e
    x
    e
    m
    p
    l
    o
    s
    /
    s
    i
    m
    p
    l
    e
    _
    d
    e
    p
    l
    o
    y
    /
    b
    u
    i
    l
    d
    .
    p

    View Slide

  27. PERGUNTAS?

    View Slide

  28. LINKS
    http://phing.info/docs/guide/stable
    http://github.com/phingoficial/phing
    https://github.com/hussani/phing-samples

    View Slide

  29. OBRIGADO!
    @hussanii

    View Slide