# All pipeline steps run in their own container, but the working directory (with code) is in a shared # volume, which is mounted in all the containers. So modifying the filesystem (within the working dir) # is persistent between build steps. steps: lint: image: offline-twitter/go commands: - golangci-lint run test: image: offline-twitter/go commands: - mkdir pkg/persistence/test_profiles - sample_data/init_data.sh - go test -bench=. -cover ./... integration_test: image: offline-twitter/go secrets: # - offline_twatter_passwd - offline_twatter_session_file environment: - SESSION_FILE_PATH=/tmp/Offline_Twatter.session # Temp location, to be imported by the integration test when: # At least one - path: - pkg/scraper/** - cmd/** - branch: v*.*.* commands: - cd cmd - mkdir -p $(dirname $SESSION_FILE_PATH) # Make the temp directory... - echo "$OFFLINE_TWATTER_SESSION_FILE" > $SESSION_FILE_PATH # ...and write the session file to temp location - ./tests.sh webserver_test: image: offline-twitter/go commands: - cd cmd - ./compile.sh - ./tw --profile ../sample_data/profile webserver --addr localhost:1000 & - sleep 1 - curl localhost:1000/cernovich > webserver_test_output.html - jobs -p | xargs -I{} kill -- -{} version_bump_test: image: offline-twitter/go when: - event: tag ref: refs/tags/v*.*.* secrets: # - offline_twatter_passwd - offline_twatter_session_file commands: - export version=$(echo $CI_COMMIT_TAG | grep -Poh "(?<=^v)\d+\.\d+\.\d+") - curl https://apt.playfulpachyderm.com/KEY.gpg | sudo apt-key add - - echo "deb https://apt.playfulpachyderm.com/ ./" | sudo tee /etc/apt/sources.list.d/offline_twitter.list - sudo apt update - sudo apt install -y offline-twitter-engine - which twitter - twitter create_profile outdated_profile - cd outdated_profile # TODO: The CI server appears to have been IP-banned. Replacing login with session-file secret for now # - twitter login offline_twatter "$OFFLINE_TWATTER_PASSWD" - echo "$OFFLINE_TWATTER_SESSION_FILE" > Offline_Twatter.session # Write the session file - twitter --session Offline_Twatter fetch_tweet https://x.com/pcmonk/status/1826683684285808876 #fetch_user pcmonk - twitter --session Offline_Twatter get_user_tweets pcmonk - (cd ../cmd && ./compile.sh $version) - which ../cmd/tw - ../cmd/tw fetch_user pcmonk dpkg_build_and_upload: when: - event: tag ref: refs/tags/v*.*.* image: offline-twitter/go secrets: - aptrepo_id_ecdsa commands: - export version=$(echo $CI_COMMIT_TAG | grep -Poh "(?<=^v)\d+\.\d+\.\d+") - cd build - ./build_dpkg.sh $version - eval $(ssh-agent) - echo "$APTREPO_ID_ECDSA" | ssh-add - - scp offline-twitter_$${version}_all.deb aptrepo@apt.playfulpachyderm.com:/apt-repo/test-repo - ssh aptrepo@apt.playfulpachyderm.com "cd ~/test-repo && ./update.sh" windows_build: image: offline-twitter/go-mingw when: - event: tag ref: refs/tags/v*.*.* commands: - cd cmd - export version=$(echo $CI_COMMIT_TAG | grep -Poh "(?<=^v)\d+\.\d+\.\d+") - ./windows-compile.sh $version windows_package_and_upload: when: - event: tag ref: refs/tags/v*.*.* image: offline-twitter/innosetup secrets: - offline_twatter_id_ecdsa commands: - export version=$(echo $CI_COMMIT_TAG | grep -Poh "(?<=^v)\d+\.\d+\.\d+") - iscc.sh /Dversion=$version /Dexe_path=`winepath -w cmd/twitter.exe` build/windows/setup.iss - eval $(ssh-agent) - echo "$OFFLINE_TWATTER_ID_ECDSA" | ssh-add - - scp build/windows/Output/mysetup.exe offline-twitter@offline-twitter.com:/var/www/offline-twitter.com/downloads/offline-twitter-for-windows.exe depends_on: - build-docker