[geany/geany-plugins] 2e60e2: Migrate from Travis CI to Github Actions

Enrico Tröger git-noreply at xxxxx
Sun Feb 6 22:22:57 UTC 2022


Branch:      refs/heads/master
Author:      Enrico Tröger <enrico.troeger at uvena.de>
Committer:   Enrico Tröger <enrico.troeger at uvena.de>
Date:        Sun, 06 Feb 2022 22:22:57 UTC
Commit:      2e60e2163b71e7d210d7f36616dbd05fbab2c096
             https://github.com/geany/geany-plugins/commit/2e60e2163b71e7d210d7f36616dbd05fbab2c096

Log Message:
-----------
Migrate from Travis CI to Github Actions


Modified Paths:
--------------
    .github/workflows/build.yml
    .travis.yml

Modified: .github/workflows/build.yml
175 lines changed, 175 insertions(+), 0 deletions(-)
===================================================================
@@ -0,0 +1,175 @@
+#
+# Copyright:	2022, The Geany contributors
+# License:		GNU GPL v2 or later
+
+name: CI Build
+
+on:
+  push:
+    branches:
+      - master
+  pull_request:
+    branches:
+      - master
+
+# cancel already running builds of the same branch or pull request
+concurrency:
+  group: ci-${{ github.head_ref }} || concat(${{ github.ref }}
+  cancel-in-progress: true
+
+env:
+  CFLAGS: -g -O2 -Werror=pointer-arith -Werror=implicit-function-declaration
+  CONFIGURE_FLAGS: --disable-silent-rules
+  CCACHE_DIR: ${{ github.workspace }}/.ccache
+  CCACHE_COMPRESS: true
+  CCACHE_MAXSIZE: 1G
+  PYTHON: python3
+  JOBS: 2
+  DEBUG: 0
+
+jobs:
+  linux:
+    name: Linux Build
+    runs-on: ubuntu-18.04
+
+    env:
+      CC:                       ccache gcc
+      CXX:                      ccache g++
+      GEANY_SOURCE_PATH:        ${{ github.workspace }}/.geany_source
+      GEANY_CACHE_PATH:         ${{ github.workspace }}/.geany_cache
+      GEANY_INSTALLATION_PATH:  ${{ github.workspace }}/.geany_cache/_geany_install
+      PKG_CONFIG_PATH:          ${{ github.workspace }}/.geany_cache/_geany_install/lib/pkgconfig:$PKG_CONFIG_PATH
+      LD_LIBRARY_PATH:          ${{ github.workspace }}/.geany_cache/_geany_install/lib:$LD_LIBRARY_PATH
+
+    steps:
+      - name: Checkout Geany-Plugins
+        uses: actions/checkout at v2
+
+      - name: Checkout Geany
+        uses: actions/checkout at v2
+        with:
+          repository: geany/geany
+          path: ${{ env.GEANY_SOURCE_PATH }}
+          token: ${{ github.token }}
+
+      # create and use a timestamp for the cache key: GH Actions will never update a cache
+      # only use an existing cache item or create a new one. To use an existing cache *and*
+      # push back the the updated cache after build, we use a always new cache key (to force
+      # the creation of the cache item at the end) in combination with "restore-keys" as fallback
+      - name: Prepare ccache timestamp
+        id: ccache_cache_timestamp
+        run: echo "::set-output name=timestamp::$(date +%Y-%m-%d-%H-%M)"
+
+      - name: Configure ccache
+        uses: actions/cache at v2
+        with:
+          path: ${{ env.CCACHE_DIR }}
+          key: ${{ runner.os }}-${{ github.job }}-ccache-${{ steps.ccache_cache_timestamp.outputs.timestamp }}
+          restore-keys: ${{ runner.os }}-${{ github.job }}-ccache-
+
+      - name: Prepare Geany Cache Key
+        id: prepare_geany_cache_key
+        working-directory: ${{ env.GEANY_SOURCE_PATH }}
+        run: echo "::set-output name=commit_hash::$(git rev-parse HEAD)"
+
+      - name: Configure Geany Cache
+        id: geany_cache
+        uses: actions/cache at v2
+        with:
+          path: ${{ env.GEANY_CACHE_PATH }}
+          key: ${{ runner.os }}-${{ github.job }}-geany-cache-${{ steps.prepare_geany_cache_key.outputs.commit_hash }}
+
+      - name: Show environment
+        if: ${{ env.DEBUG == '1' }}
+        run: |
+            env | sort
+
+      - name: Install Dependencies
+        run: |
+          sudo apt-get update --quiet --quiet
+          # write dependencies to a temporary file which is then fed to "apt-get install",
+          # so we can use comments in the dependency list
+          cat << EOF > $RUNNER_TEMP/dependencies
+            # general
+            ccache
+            libtool
+            libgtk-3-dev
+            # geany
+            autopoint
+            gettext
+            python-docutils
+            # geany-plugins
+            intltool
+            check
+            cppcheck
+            # debugger
+            libvte-2.91-dev
+            # devhelp
+            libwebkitgtk-dev
+            libwnck-dev
+            libgconf2-dev
+            zlib1g-dev
+            # geanygendoc
+            libctpl-dev
+            # geanylua
+            liblua5.1-0-dev
+            # geanypg
+            libgpgme-dev
+            # geanypy
+            python-dev
+            # geanyvc
+            libgtkspell-dev
+            libgtkspell3-3-dev
+            # geaniuspaste/updatechecker
+            libsoup2.4-dev
+            # git-changebar
+            libgit2-dev
+            # markdown
+            libmarkdown2-dev
+            # markdown/webhelper
+            libwebkitgtk-3.0-dev
+            # multiterm
+            valac
+            # pretty-printer
+            libxml2-dev
+            # spellcheck
+            libenchant-dev
+          EOF
+          grep -v '^[ ]*#' $RUNNER_TEMP/dependencies | xargs sudo apt-get install --assume-yes --no-install-recommends
+
+      - name: Build Geany
+        if: steps.geany_cache.outputs.cache-hit != 'true'
+        run: |
+          cd "${{ env.GEANY_SOURCE_PATH }}"
+          NOCONFIGURE=1 ./autogen.sh
+          mkdir _build
+          cd _build
+          { ../configure --prefix="${{ env.GEANY_INSTALLATION_PATH }}" || { cat config.log; exit 1; } ; }
+          make -j ${{ env.JOBS }}
+          make -j ${{ env.JOBS }} install
+
+      - name: Configure
+        run: |
+          NOCONFIGURE=1 ./autogen.sh
+          mkdir _build
+          cd _build
+          { ../configure $CONFIGURE_FLAGS || { cat config.log; exit 1; } ; }
+
+      - name: Build
+        run: |
+          cd _build
+          make -j ${{ env.JOBS }}
+
+      - name: Run Tests
+        run: |
+          cd _build
+          make -j ${{ env.JOBS }} check
+
+      - name: Run distcheck
+        run: |
+          cd _build
+          make -j ${{ env.JOBS }} distcheck DISTCHECK_CONFIGURE_FLAGS="${{ env.CONFIGURE_FLAGS }}";
+
+      - name: ccache statistics
+        if: ${{ env.DEBUG == '1' }}
+        run: ccache --show-stats


Modified: .travis.yml
99 lines changed, 0 insertions(+), 99 deletions(-)
===================================================================
@@ -1,99 +0,0 @@
-language: c
-dist: bionic
-sudo: false
-
-compiler:
-  - gcc
-
-cache:
-  ccache: true
-  directories:
-    - $HOME/geany/gtk3
-
-addons:
-  apt:
-    packages:
-    - libgtk-3-dev
-    - intltool
-    - libtool
-    - python-docutils
-    - check
-    - cppcheck
-    # geany
-    - gettext autopoint
-    # debugger
-    - libvte-2.91-dev
-    # devhelp
-    - libwebkitgtk-dev
-    - libwnck-dev
-    - libgconf2-dev
-    - zlib1g-dev
-    # geanygendoc
-    - libctpl-dev
-    # geanylua
-    - liblua5.1-0-dev
-    # geanypg
-    - libgpgme11-dev
-    # geanypy
-    - python-dev
-    # geanyvc
-    - libgtkspell-dev
-    - libgtkspell3-3-dev
-    # geaniuspaste/updatechecker
-    - libsoup2.4-dev
-    # git-changebar
-    - libgit2-dev
-    # markdown
-    - libmarkdown2-dev
-    # markdown/webhelper
-    - libwebkitgtk-3.0-dev
-    # multiterm
-    - valac
-    # pretty-printer
-    - libxml2-dev
-    # spellcheck
-    - libenchant-dev
-
-before_install:
-  # build Geany
-  - TEMPDIR=$(mktemp -d)
-  - git clone git://github.com/geany/geany.git "$TEMPDIR/geany"
-  - geany_commit=$(cd "$TEMPDIR/geany" && git rev-parse HEAD)
-  - gtkver=gtk3
-  - cachedir="$HOME/geany/$gtkver/"
-  - cache_id=$(cat "$cachedir/commit-id" 2>/dev/null || echo "none")
-  # check if the cache is up-to-date, and either use it, or (re-)create it
-  - >
-    if test "$geany_commit" = "$cache_id"; then
-      echo "Cache '$cachedir' looks good, using it (ID: $cache_id).";
-    else
-      echo "Cache '$cachedir' is missing, outdated or invalid, dropping it.";
-      echo "  Cache ID: $cache_id";
-      echo "  Geany ID: $geany_commit";
-      rm "$cachedir" -rf || exit 1;
-      ( cd "$TEMPDIR/geany"                                   &&
-        NOCONFIGURE=1 ./autogen.sh                            &&
-        ./configure --prefix="$cachedir"                      &&
-        make -j2                                              &&
-        make install || exit 1;
-        git rev-parse HEAD > "$cachedir/commit-id" || exit 2;
-      ) || exit $?;
-    fi
-  - test -z "$TEMPDIR" || rm -rf "$TEMPDIR"
-  - export PKG_CONFIG_PATH="$cachedir/lib/pkgconfig:$PKG_CONFIG_PATH"
-  - export LD_LIBRARY_PATH="$cachedir/lib:$LD_LIBRARY_PATH"
-
-before_script:
-  # prepare for GP
-  - export CFLAGS="-g -O2 -Werror=pointer-arith -Werror=implicit-function-declaration"
-
-script:
-  - NOCONFIGURE=1 ./autogen.sh
-  - mkdir _build && cd _build
-  - ../configure --disable-silent-rules
-  - make -j2
-  - make -j2 check
-  - make -j2 distcheck
-
-after_script:
-  - test -z "$TEMPDIR" || rm -rf "$TEMPDIR"



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Plugins-Commits mailing list