github.com/edwarnicke/govpp@v0.0.0-20230130211138-14ef5d20b1d0/.github/workflows/ci.yaml (about) 1 --- 2 name: ci 3 on: 4 push: 5 branches: 6 - main 7 tags: 8 - v* 9 paths-ignore: 10 - '**.md' 11 pull_request: 12 paths-ignore: 13 - '**.md' 14 jobs: 15 yamllint: 16 name: yamllint 17 runs-on: ubuntu-latest 18 steps: 19 - name: Check out code into the Go module directory 20 uses: actions/checkout@v2 21 - name: yaml-lint 22 uses: ibiqlik/action-yamllint@v1 23 with: 24 config_file: .ci/yamllint.yml 25 strict: true 26 generate: 27 name: generate 28 runs-on: ubuntu-latest 29 steps: 30 - name: Check out code 31 uses: actions/checkout@v2 32 - uses: actions/setup-go@v1 33 with: 34 go-version: 1.15.3 35 # This is a hack around secrets.* in steps.if statements not being supported 36 - name: Assign Secrets 37 id: secrets 38 run: | 39 echo '::set-output name=GHCR_TOKEN::${{secrets.GHCR_TOKEN}}' 40 - name: Docker Login 41 if: ${{steps.secrets.outputs.GHCR_TOKEN != '' }} 42 run: echo ${{secrets.GHCR_TOKEN}} | docker login ghcr.io -u ${{github.repository_owner}} --password-stdin 43 - name: Set Swap Space 44 uses: pierotofy/set-swap-space@v1.0 45 with: 46 swap-size-gb: 4 47 - name: Memory usage 48 run: free -m 49 - name: List installed packages 50 run: dpkg -la 51 - name: Free Disk Space for Docker 52 run: | 53 df -h 54 sudo apt-get remove aria2 azure-cli shellcheck rpm xorriso zsync \ 55 clang-12 lld-12 clang-format-12 \ 56 clang-13 lld-13 clang-format-13 \ 57 clang-14 lld-14 clang-format-14 \ 58 g++-9 g++-10 g++-12 g++-11 gfortran-9 gfortran-10 gfortran-11 google-chrome-stable \ 59 google-cloud-sdk \ 60 imagemagick \ 61 libmagickcore-dev libmagickwand-dev libmagic-dev ant ant-optional \ 62 mercurial apt-transport-https mono-complete mysql-client libmysqlclient-dev \ 63 mysql-server mssql-tools unixodbc-dev yarn libssl-dev \ 64 libfreetype6 libfreetype6-dev libfontconfig1 libfontconfig1-dev \ 65 php-common \ 66 php-pear \ 67 php8.1 \ 68 php8.1-amqp \ 69 php8.1-apcu \ 70 php8.1-bcmath \ 71 php8.1-bz2 \ 72 php8.1-cgi \ 73 php8.1-cli \ 74 php8.1-common \ 75 php8.1-curl \ 76 php8.1-dba \ 77 php8.1-dev \ 78 php8.1-enchant \ 79 php8.1-fpm \ 80 php8.1-gd \ 81 php8.1-gmp \ 82 php8.1-igbinary \ 83 php8.1-imagick \ 84 php8.1-imap \ 85 php8.1-interbase \ 86 php8.1-intl \ 87 php8.1-ldap \ 88 php8.1-mbstring \ 89 php8.1-memcache \ 90 php8.1-memcached \ 91 php8.1-mongodb \ 92 php8.1-msgpack \ 93 php8.1-mysql \ 94 php8.1-odbc \ 95 php8.1-opcache \ 96 php8.1-pcov \ 97 php8.1-pgsql \ 98 php8.1-phpdbg \ 99 php8.1-pspell \ 100 php8.1-readline \ 101 php8.1-redis \ 102 php8.1-snmp \ 103 php8.1-soap \ 104 php8.1-sqlite3 \ 105 php8.1-sybase \ 106 php8.1-tidy \ 107 php8.1-xdebug \ 108 php8.1-xml \ 109 php8.1-xsl \ 110 php8.1-yaml \ 111 php8.1-zip \ 112 php8.1-zmq \ 113 snmp pollinate libpq-dev powershell ruby-full nginx shim-signed \ 114 libnginx-mod-http-image-filter libmono-system-web4.0-cil monodoc-http \ 115 sphinxsearch subversion -yq --allow-remove-essential 116 sudo apt-get autoremove -y 117 sudo apt-get autoclean -y 118 sudo rm -rf /usr/local/lib/android 119 sudo apt clean 120 docker rmi $(docker image ls -aq) 121 df -h 122 - name: Docker Build 123 run: | 124 docker build . 125 VPP_VERSION=$(docker run $(docker build -q . --target version)) 126 echo "VPP_VERSION=${VPP_VERSION}" >> $GITHUB_ENV 127 TAG=v${VPP_VERSION/\~/-} 128 echo "TAG=${TAG}" >> $GITHUB_ENV 129 docker build -t ghcr.io/${{github.repository}}/vpp:${TAG} . --target vpp 130 docker build -t ghcr.io/${{github.repository}}/vpp-dbg:${TAG} . --target vpp-dbg 131 - name: Generate files 132 run: go generate ./... 133 - name: Check for changes in generated code 134 run: | 135 git diff -- binapi || (echo "Rerun go generate ./... locally and resubmit" && exit -1) 136 - name: Go Build 137 run: go build ./... 138 - name: Docker Push 139 if: ${{steps.secrets.outputs.GHCR_TOKEN != '' && github.head_ref == ''}} 140 run: | 141 docker push ghcr.io/${{github.repository}}/vpp:${TAG} 142 docker push ghcr.io/${{github.repository}}/vpp-dbg:${TAG} 143 - name: Tag 144 if: ${{steps.secrets.outputs.GHCR_TOKEN != '' && github.head_ref == ''}} 145 id: tag 146 uses: mathieudutour/github-tag-action@v5.6 147 with: 148 github_token: ${{ secrets.GITHUB_TOKEN }} 149 custom_tag: ${{ env.TAG }} 150 tag_prefix: ""